转载请注明: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