Android Studio - 在数据库中插入数据后,ListView刷新无效

时间:2016-04-24 04:15:25

标签: android database sqlite listview

基本上我使用一种方法来返回一个列表(包含数据库中的所有联系人),这将列出作为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的基本列表;

0 个答案:

没有答案