Basicly I use a method to return a list (with all the contacts in the database) that will ovewrite a list that is the base list to my listview. After that "overwriting" I try to refresh the list using ((BaseAdapter)EmergenciaFragment.lvContatosEmergencia.getAdapter()).notifyDataSetChanged();
but nothing happens. I only can refresh the listView finishing the activity and oppening it again.
I use this method to return a List with all the contacts in the database:
public List<Contato> buscaContatos(int tipo) {
List<Contato> listContatos = new ArrayList<>();
String table = Utility.getTableName(tipo);
Cursor cursor = connection.query(table, null, null, null, null, null, null);
Log.d("Log","List size: " + cursor.getCount());
if (cursor.moveToFirst()) {
cursor.moveToFirst();
do {
listContatos.add(new Contato(cursor.getString(1), cursor.getString(0), cursor.getString(2), tipo));
} while(cursor.moveToNext());
}
cursor.close();
return listContatos;
}
And I try to use this method to refresh de listView
public static void refreshListView() {
EmergenciaFragment.contatos = MainActivity.dbController.buscaContatos(Contato.EMERGENCIA);
((BaseAdapter)EmergenciaFragment.lvContatosEmergencia.getAdapter()).notifyDataSetChanged();
}
This method is called on the activity that contains the fragment that contains the listview
@Override
public void onResume() {
super.onResume();
EmergenciaFragment.refreshListView();
}
The list EmergenciaFragment.contatos is the base list to the listView;