Android - 如何在基础数据发生变化时更新Adapter的实例变量?

时间:2016-07-02 10:57:07

标签: android

以下代码无效,因为在onChanged方法中,我们无法访问这个,因为这两个是不同的对象。

我该如何解决这个问题?请帮我。感谢。

this.registerDataSetObserver(new DataSetObserver() {
        @Override
        public void onChanged() {
            super.onChanged();
            //this will not work
            this.checkedStates = new ArrayList<CheckboxState>(this.getCount());
        }
 });

1 个答案:

答案 0 :(得分:0)

如果代码在适配器内且checkedStates是类字段,只需使用:

registerDataSetObserver(this);

然后让你的适配器实现DataSetObserver

@Override
public void onChanged(){
       super.onChanged();
       checkedStates = new ArrayList<CheckboxState>(getCount());
}