关于listView+checkBox多选错乱的分析

本文探讨了在Android项目中使用ListView配合CheckBox实现多选时遇到的状态错乱问题。通过使用Map来保存每个position的CheckBox状态,以防止因ListView复用机制引起的错误。然而,在实践中仍可能出现错乱。作者分享了自己的经历,并提出将CheckBox状态初始化放在监听器后面执行作为解决方案。同时,提供了包含三种不同处理方式的代码下载链接以供参考。
摘要由CSDN通过智能技术生成

转载请注明:http://blog.csdn.net/binbinqq86/article/details/49148571

最近在项目中需要实现一个列表,可以进行多选,当然首选的方案就是listview+checkbox,关于checkbox的选中状态会采用一个集合(Map<Integer,Boolean>)来保存,当listview来回滑动的时候,根据保存的每个position的checkbox的勾选状态来进行显示,这样就可以防止listview的复用机制导致的状态错乱问题,想的挺美好,结果在实际操作中,却仍然会出现错乱的情况,不知道有没有人碰到过这样的情况(此处写下本人的经历,仅供参考,写的不好的话也请大家不要喷)。

下面先上整个代码,再来进行分析:

package com.binbin.listview_with_checkbox;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView;
import android.widget.TextView;

public class ThirdActivity extends
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值