我有两个活动:一个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
启动startActivityForResults
,然后在requery
中调用游标onActivityResult
,我不知道是否有更好的解决方案?< / p>
答案 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)
尝试以下步骤..
在NoteListActivity中使用startActivityForResult()
来启动NoteEditorActivity。
在保存按钮点击事件
RESULT_OK
在NoteListActivity的onActivityResult()
中填充列表