我对list-view有疑问请看下面的代码
private void set_adapter() {
Cursor list_scan_curson = scan_result.getScanResult();
List<String> list_scan = new ArrayList<String>();
try {
if (list_scan_curson.moveToFirst()) {
do {
String name = list_scan_curson.getString(0);
// Adding contact to list
list_scan.add(name);
} while (list_scan_curson.moveToNext());
}
ArrayAdapter<String> list_item_scan = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list_scan);
this.list_scan.setAdapter(list_item_scan);
} catch (Exception e) {
}
}
现在我想更改或更新适配器,当我的数据库更新并基于该列表视图将更新时,任何好友都可以告诉我如何执行此操作
答案 0 :(得分:2)
您创建一个新光标,并替换旧光标,如下所示:
Private ArrayAdapter<String> mAdapter; // adapter declared as field
...
mAdapter = ..., // create adapter
...
mAdapter.notifyDataSetChanged(); // update listview
答案 1 :(得分:1)
如果要使用adapter.notifyDataSetChanged()
更新列表中的数据。如果要更新数据库中的数据,则必须触发某些操作,因此请使用onScrollchanged
侦听器或使用某些后台线程。
答案 2 :(得分:0)
您可以实现以下[checkIstheDataVersionChanged(Object CurrentVersion)
]之类的逻辑来检查哪种类型的更改/更新会影响您的数据集并使用set_adapter重新加载listView。
boolean isDataSetChanged = checkIstheDataVersionChanged(Object CurrentVersion);
if(isDataSetChanged )
{
set_adapter();
}