基本上我使用一种方法来返回一个列表(包含数据库中的所有联系人),这将列出作为listview基本列表的列表。在“覆盖”之后,我尝试使用((BaseAdapter)EmergenciaFragment.lvContatosEmergencia.getAdapter()).notifyDataSetChanged();
刷新列表,但没有任何反应。我只能刷新listView完成活动并再次操作它。
我使用此方法返回包含数据库中所有联系人的List:
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;
}
我尝试使用此方法刷新de listView
public static void refreshListView() {
EmergenciaFragment.contatos = MainActivity.dbController.buscaContatos(Contato.EMERGENCIA);
((BaseAdapter)EmergenciaFragment.lvContatosEmergencia.getAdapter()).notifyDataSetChanged();
}
在包含包含listview
的片段的活动上调用此方法@Override
public void onResume() {
super.onResume();
EmergenciaFragment.refreshListView();
}
列表EmergenciaFragment.contatos是listView的基本列表;