notifyDataSetChanged如何工作?

时间:2017-10-11 12:50:51

标签: java android android-adapter

我对notifyDataSetChanged()

BaseExpandableListAdapter的工作原理有疑问

我正在更新一个布尔变量,其输出确定getChildrenCount()的输出,但可见的注释数量在调用时不会改变

代码:

buttonViewComments.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                allCommentsVisible = !allCommentsVisible;
                notifyDataSetChanged();
            }
        });

getChildrenCount:

public int getChildrenCount(int groupPosition) {
        if(allCommentsVisible || postList.get(groupPosition).commentListSize()<=3)
            return postList.get(groupPosition).commentListSize();
        else{
            return 3;
        }
    }

2 个答案:

答案 0 :(得分:0)

notifyDataSetChanged

  

通知附加的观察者基础数据已经存在   已更改,任何反映数据集的视图都应自行刷新。   Reference

在您的情况下,没有任何基础数据更改。为了使其工作,您需要更改列表postList项目,以便更新集合,计数器将随着集合的大小一起更新。

答案 1 :(得分:0)

您可以从此链接获得有关此内容的有用信息。

Android. How does notifyDataSetChanged() method and ListViews work?