如何刷新ListView?

时间:2015-03-22 11:24:44

标签: android android-listview simplecursoradapter

如何刷新列表视图?如何在这里使用notifyDatasetchanged刷新以刷新列表视图?

private void updateUI() {
    helper = new TaskDBHelper(MainActivity.this);
    SQLiteDatabase sqlDB = helper.getReadableDatabase();
    Cursor cursor = sqlDB.query(TaskContract.TABLE,
            new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
            null,null,null,null,null);

    SimpleCursorAdapter listAdapter = new SimpleCursorAdapter(
            this,
            R.layout.task,
            cursor,
            new String[]{TaskContract.Columns.TASK},
            new int[]{R.id.taskTextView},
            0
    );
    this.setListAdapter(listAdapter);
}

2 个答案:

答案 0 :(得分:0)

与前面的响应一样,只要你预期数据发生变化,或者你有其他方法通过回调等来检测这种情况,你应该只调用notifyDataSetChanged()。重新创建适配器似乎浪费时间和内存取决于你存储了多少数据,因为必须在某些时候复制所有数据。

答案 1 :(得分:0)

函数notifyDataSetChanged属于适配器。因此,当您的数据模型发生变化时,您必须从适配器调用它。 示例:

onEvent() {listAdapter.notifyDataSetChanged();}