参考:
这个问题一直很纠结,用sqlite的update, del, add都正常,但遇到search就不好使。
曾经写过类似下面的代码:
private void UpdataAdapter() { // 获取数据库的Curso对象
if (mCursor != null && mCursor.getCount() >= 0) {
adapter = new SimpleCursorAdapter(this,
// Use a template that displays a text view
//android.R.layout.simple_list_item_2,
R.layout.list_700,
// Give the cursor to the list adapter
mCursor,
// Map the DISPLAY_NAME column to...
new String[] { Phone.NUMBER ,Phone.DISPLAY_NAME },
// The "text1" view defined in the XML template
//new int[] { android.R.id.text1, android.R.id.text2 });
new int[] { R.id.viewName, R.id.viewNum });
setListAdapter(adapter);
}
}
search后再调用它来刷新view,也正常,但用C++的观念来看不点不符合逻辑。
后来无意中在找到了答案:
adapter.changeCursor(newCursor);//网上看到很多问如何更新ListView的信息,采用CusorApater其实很简单,换cursor就可以
public void changeCursor(Cursor cursor) {
Cursor old = swapCursor(cursor);
if (old != null) {
old.close();
}
}
再执行一次cursor.close()就没有必要了。
阅读(4110) | 评论(0) | 转发(0) |