2.android 关于listView的复用问题

 关于listView的复用问题,复用出错,重复出现,这个问题是listView的复用机制导致的,为了节省资源
解决办法是:
1.通过在bean类里设置一个标记 如:

 private boolean isSelect;

        public boolean isSelect() {
            return isSelect;
        }

        public void setSelect(boolean select) {
            isSelect = select;
        }

默认为false 就是未选中状态,并设置get set方法

2.然后在listview适配器里判断这个标记 如:
 //解决复用的  如果当前标记为选中状态那么执行操作
       

 if (mlist.get(position).isSelect()){
            holder.mListViewText.setTextColor(Color.RED);
        }
        //如果不是选中状态 执行操作
        else {
            holder.mListViewText.setTextColor(Color.BLACK);
        }


在点击事件里的处理 如:
 //一进点击事件默认把所有item的isSelect设为false 表示都没选中
             

  for (int i = 0; i <resultList.size() ; i++) {
                    yuedoubaen.ResultListBean resultListBean = resultList.get(i);
                    resultListBean.setSelect(false);
                }


                 //这是为了重复点击使用 比如点一次颜色红了  再点一次颜色黑了  如此循环
                //然后点击那个  把那个设为和当前相反的状态 比如当前为false设为true 当前为true设为false
                //resultList.get(position).setSelect(!resultList.get(position).isSelect());

                //点哪个那个为true 表示选中
                resultList.get(position).setSelect(true);
                //在刷新一下适配器就ok
                apader.notifyDataSetChanged();
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值