0

我正在将 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 并重新进入活动时,列表才会更新。有任何想法吗?

4

1 回答 1

0

当你调用 notifyDataSetChange 时,它​​会更新 list ,但它会从 fileString 和 movieNameString 中获取所有值,所以你必须在调用 notifyDataSetChange 之前更新它们。否则你会发现没有任何变化。

于 2013-07-06T13:22:17.177 回答