【发布时间】:2011-08-24 12:29:43
【问题描述】:
我在 ListActivity 中显示来自 SQLite 的数据。用户可以单击列表元素,将其发送到更新数据库的 Activity。
更新 Activity 完成后,用户会被送回原来的 ListActivity。
当用户从 ListActivity 返回时,我希望将 ListView 定位为显示她刚刚更新的数据(例如,在可能的第一个位置)。
我尝试将光标定位到我想要显示的条目;但这似乎不起作用(请参阅下面的代码以获取代码示例)。
protected void onResume() {
super.onResume();
mDbCursor = mDbAdapter.getCursor();
long id = getIntent().getLongExtra(FIRST_ID, -1); // Id of updated row.
while (mDbCursor.moveToNext() && getId(mDbCursor) != id) {
}
.
. calling setListAdapter(SimpleCursorAdapter);
.
}
我认为光标在退出 while 循环后定位到正确的行。
【问题讨论】:
-
下面推荐
getListView().setSelection(int position)的两个答案都让我走上了正轨。我实际上最终将当前位置从 ListActivity 传递给了更新 Activity。然后更新活动将当前位置传回给 ListActivity。这节省了对 Cursor 的循环,并且可以正常工作,因为不会对 DB 表进行添加或删除。
标签: android android-listview simplecursoradapter