202_让ListView带选择且不复用


假设我们现在给ListView加一个选择的功能

比如点击条目,这个条目就被选中了,变成红色,

再点一下就是取消选择,条目变成白色


如果我们直接这样写,并且用上ViewHolder,

会出现复用的问题

比如选择了第1个,第2个,

向下滑动之后,下面的几个条目也会变成红色

这个就是复用的问题


那么我们可以在javabean里面设置一个boolean属性

比如默认为false,也就是不选中


boolean isSelected=false;


然后我们给设置条目点击事件


lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {

        bean bean = numList.get(position);

        if (bean.isSelected == true) {
            bean.isSelected = false;
        } else {
            bean.isSelected = true;
        }
        adapter.notifyDataSetChanged();
    }
});
 
  
很简单就搞定啦


你可能感兴趣的:(202_让ListView带选择且不复用)