如何使用LazyAdapter更改后刷新列表

时间:2013-07-06 13:06:21

标签: android listview android-listview adapter lazylist

我正在使用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并重新输入活动时,列表才会更新。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当你调用notifyDataSetChange时,它会更新列表,但是它会从fileString和movieNameString中获取所有值,所以你必须在调用notifyDataSetChange之前更新它们。否则你将找不到更改。