android - 如何从 CursorAdapter 刷新 ListView?

标签 android listview android-cursoradapter

我的 Activity 中有一个 ListView,它是在 onCreate 中设置的

    MyCursorAdapter adapter = new TaskConditsCursorAdapter(this, conditsCursor, taskID, isNewTask);
    setListAdapter(adapter);

然后我在 MyCursorAdapter 中做一些工作。其中,我有一个行特定的 AlertDialog:

...
    builder.setPositiveButton("OK"), new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
            changeTaskConditBoolValue(taskId, conditId, chosenBoolValue2);
            // refresh?
        }
    });

changeTaskConditBoolValue 之后,我想重新加载我的列表,因为此方法更改了数据库中的某些内容,但列表没有更新。 requery() 导致列表为空。 我怎样才能“上一级”再次使用适配器,然后我应该怎么做?

非常感谢!

最佳答案

MyCursorAdapter 中由 onClick 调用的方法 - 在我的例子中是 changeTaskConditBoolValue(...) 我必须调用:

this.changeCursor(db.fetchAllTasks(myParameters));

这通过我的数据库类获取了一个新游标,并用新游标替换了它自己的旧游标。

没有找到从 CursorAdapter 内部更改光标的其他方法。

关于android - 如何从 CursorAdapter 刷新 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695893/

相关文章:

android - 在 CentOS 6 中从命令行构建 Android 应用程序时需要 GLIBC_2.14

java - 无法在索引 1 处绑定(bind)参数,因为索引超出范围。该语句有 0 个参数

android - 使用 SimpleCursorTreeAdapter 单击 ExpandableListView subview 中按钮的监听器

java - 我有一个模型类,用它保存到 Realm 。如何使用 `contains()`查看对象是否已经存储

android - Android 上的特征脸

android - Recyclerview 复选框保持检查问题?

java - 启用 html 的 android ListView

android - 使用自定义列表适配器(包括节标题)自定义过滤ListView

java - 具有自定义适配器的ListView子类: basic Java Q