android - 如何在子 Activity 返回时更新父 Activity 的 ListView

标签 android sqlite

我有两个 Activity :一个 NoteListActivity 继承自 ListActivity,我使用 SimpleCursorAdapter 作为它的适配器,其中光标如下获取:

    public Cursor getAllNotesCursor() {
    String selectQuery = "SELECT _id , title, content FROM " + NOTE_TABLE_NAME;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    return cursor;
}

另一个 Activity NoteEditorActivity 负责创建新笔记,那里有一个 save 操作,点击后我将在 SQLite 数据库中添加一个新笔记,然后调用 finishNoteListActivity

问题是 NoteListActivity 没有更新新笔记,你知道实现这个的最佳实践吗?

我能想到的一个解决方案是通过调用 startActivityForResults 启动 NoteEditorActivity,然后在 onActivityResult 中调用游标 requery,不知道有没有更好的解决办法?

最佳答案

startActivityForResults 很好,但为什么不尝试使用 yourAdapter.notifyDataChange() 覆盖 onResume() 方法

@Override
public void onResume() {
    ...
    yourAdapter.notifyDataSetChanged();
}

当然,您必须在您的字段类中添加您的适配器。

关于android - 如何在子 Activity 返回时更新父 Activity 的 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18930736/

相关文章:

dalvik.system.PathClassLoader.findClass 中的 java.lang.ClassNotFoundException

Android:SQLiteConstraintException:错误代码 19:约束失败

java - "table * has no column named * "错误,SQLite

.net - sqlite3 的 System.DllNotFoundException

java - Android Studio无法在Fragment类和Thread之间传递TextView对象

Android Toast 消息回调或任何触摸事件

android - 在设备 WebView Kit 或 HTML 之间进行选择

Android 小部件填充问题

django_celery_beat - 更新 "no such table: main.django_celery_beat_solarschedule__old"时为 "django_celery_beat_periodictask"

c# - 使用 C# 查询 SQlite 数据库时出现 ConstraintException