【发布时间】:2013-11-26 19:07:53
【问题描述】:
我正在尝试使用以下方法:
protected void onCreate(Bundle savedInstanceState) {
...
recordsCursor = dbHelper.fetchRecords1();
startManagingCursor(recordsCursor);
String[] from = new String[]{DbAdapter.KEY_BL_SENDER, DbAdapter.KEY_BL_READ};
int[] to = new int[]{R.id.text1, R.id.background};
adapter = new SimpleCursorAdapter(this, R.layout.row, recordsCursor, from, to);
setListAdapter(adapter);
}
public boolean onOptionsItemSelected(MenuItem item) {
...
case R.id.list1:
recordsCursor = dbHelper.fetchRecords1();
String[] fromBL = new String[]{DbAdapter.KEY_BL_SENDER, DbAdapter.KEY_BL_READ};
int[] toBL = new int[]{R.id.text1, R.id.background};
Log.i(TAG, "count: "+recordsCursor.getCount()); // returns 475
adapter = new SimpleCursorAdapter(this, R.layout.row, recordsCursor, fromBL, toBL);
adapter.changeCursor(recordsCursor);
adapter.notifyDataSetChanged();
return true;
case R.id.list2:
recordsCursor = dbHelper.fetchRecords2();
String[] from = new String[]{DbAdapter.KEY_W_SENDER};
int[] to = new int[]{R.id.text1};
Log.i(TAG, "count: "+recordsCursor.getCount()); // returns 0
adapter = new SimpleCursorAdapter(this, R.layout.row, recordsCursor, from, to);
adapter.changeCursor(recordsCursor);
adapter.notifyDataSetChanged();
return true;
但它不会更新列表。一旦显示来自fetchRecords1 的记录,它们就不会被另一个表中的记录替换。我的代码有什么问题?
【问题讨论】:
-
您在哪里将此适配器归于您的列表?
-
@Dyna,我已经更新了我的代码以反映它
-
@blahdiblah 给你的答案会解决你的问题!
标签: android android-listview android-cursoradapter android-cursor