如何在子活动返回时更新父活动的列表视图

时间:2013-09-21 08:51:37

标签: android sqlite

我有两个活动:一个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数据库中添加一个新笔记然后调用finishNoteListActivity

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

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

4 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

请勿在onCreate中执行此操作。

DO IN INResume

@Override
public void onResume(){
 //fetch here, do other operation, or set layout here
}

答案 2 :(得分:0)

notifyDataSetChanged Update List View Adopter

http://androidadapternotifiydatasetchanged.blogspot.in/

答案 3 :(得分:0)

尝试以下步骤..

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

  2. 在保存按钮点击事件

  3. 中设置RESULT_OK
  4. 在NoteListActivity的onActivityResult()中填充列表