且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

CheckBox 将在向下滚动列表视图时取消选中并检查

更新时间:2022-05-11 03:12:48

我猜是不是使用了holder
制作一个 beanadapter 就像@Athira 所说的
然后在 getView 中的适配器内部试试这个

I guess the problem is not using holder
make a bean and adapter like @Athira says
then inside adapter in getView try this

@Override
        public View getView(int i, View view, ViewGroup viewGroup) {
   ViewHolder holder = null;

 if (view == null) {
            LayoutInflater inflater=LayoutInflater.from(context);
            view=inflater.inflate(R.layout.phone_list_item,viewGroup,false);
            holder.phone1= (TextView) view.findViewById(R.id.phone1);
            holder.name1= (TextView) view.findViewById(R.id.name1);
            holder.tick= (CheckBox) view.findViewById(R.id.tick);
 view.setTag(holder);
}else{
            holder = (ViewHolder) view.getTag();
        }
           holder.phone1.setText(contactModels.get(i).getPhone());
           holder.name1.setText(contactModels.get(i).getName());
            if(contactModels.get(i).isSel())
            {
                holder.tick.setSelected(true);
            }
            else
            {
                holder.tick.setSelected(true);
            }
     holder.tick.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    contactModels.get(i).setSel(isChecked);
                    notifyDataSetChanged();
                }
            });
            return view;
        }
 public class ViewHolder {
        TextView phone1,name1;
CheckBox tick;

    }
    }