1

我有两个活动:一个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;
}

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

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

我能想到的一种解决方案是先NoteEditorActivity调用startActivityForResultsthen call cursor requeryin onActivityResult,不知道有没有更好的解决方案?

4

4 回答 4

3

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

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

当然,您必须在字段类中添加 yourAdapter。

于 2013-09-21T09:19:32.123 回答
1

无论您在 onCreate 方法中做什么,都会影响 UI 通过从数据库中获取来绘制或显示注释。

不要在 onCreate 中执行此操作。

在 onResume 中做

@Override
public void onResume(){
 //fetch here, do other operation, or set layout here
}
于 2013-09-21T09:17:02.763 回答
0
notifyDataSetChanged Update List View Adopter

http://androidadapternotifiydatasetchanged.blogspot.in/
于 2013-09-21T09:16:48.640 回答
0

尝试以下步骤..

  1. 在 NoteListActivity 中使用startActivityForResult()来启动 NoteEditorActivity。

  2. RESULT_OK在保存按钮单击事件中设置

  3. onActivityResult()在NoteListActivity中填充列表

于 2013-09-21T09:23:40.010 回答