我正在使用LazyList进行自定义ListView,我需要在用户更改后刷新列表,在这种情况下,将项目添加为收藏夹。
我试过用:
list.invalidate();
((BaseAdapter) list.getAdapter()).notifyDataSetChanged();
和
list.notifyDataSetChanged();
但它似乎不适用于LazyList。
这是我的代码中的一小部分:
ListView list;
LazyAdapter adapter;
//set the custom list adapter
adapter = new LazyAdapter(this, fileString, null, movieNameString,
mId, DataBaseSize,myScore,year4list,cast4list,favArray,bellArray);
list.setAdapter(adapter);
@Override
public boolean onContextItemSelected(MenuItem item) {
final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.context_fav:
//here theres non- importent code that makes favorite
pops when user click on it
list.invalidate();
((BaseAdapter) list.getAdapter()).notifyDataSetChanged();
由于某种原因,列表未更新;只有当我使用Intent并重新输入活动时,列表才会更新。有什么想法吗?
答案 0 :(得分:0)
当你调用notifyDataSetChange时,它会更新列表,但是它会从fileString和movieNameString中获取所有值,所以你必须在调用notifyDataSetChange之前更新它们。否则你将找不到更改。