Android列表中存在checkbox的状态保存

如果列表使用的是listview,在item中存在checkbox,当点击选中以后,下一次进入列表的时候想要保存上次选中的状态。

基本上思路就是,为绑定的数据,Bean类设置一个是否选中的标识。如:

public class Bean{
   public boolean isChecked = false;
}
在绑定数据的时候(最普通的,没有用到封装的listview,即在getView()方法中),根据Bean类的选中状态来设置checkbox是否选中。

checkbox.setChecked(item.isChecked);
以及在点击的时候,也是设置修改Bean类的isChecked属性。

 checkBox.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        item.isChecked = !item.isChecked;
                    }
                });

这样的话,在上传的时候上传的状态以及从服务端获取数据的时候拿到的状态就是一样的了。再也不怕这个状态不好控制了。

其实,引起这个问题的关键就是因为,listView布局复用。

你可能感兴趣的:(android)