GridView CheckBox

GridView 表格视图 

numColumns  行数     horizontalSpacing 水平间距    verticalSpacing 垂直间距

GridView里嵌套CheckBox时  选中的CheckBox会错乱;在适配器里创建Map集合 key和value设置为 position和boolean;Boolean默认设置为false 为不选中的。

private Map<Integer,Boolean>map=new HashMap<Integer, Boolean>();
    	private MyAdapter(Context context,ArrayList<User> list){
    		this.context=context;
    		this.list=list;
    		for (int i = 0; i < list.size(); i++) {
				map.put(i, false);
			}
    	}

然后在适配器里判断CheckBox是否被选中,选中为true, 不选中为false

vh.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
				
				@Override
				public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
					// TODO Auto-generated method stub
					if (isChecked) {
						map.put(position, true);
					}else {
						map.put(position, false);
					}
				}
			});
			vh.cb.setChecked(map.get(position));
然后传值到第二个界面

bt.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View arg0) {
					// TODO Auto-generated method stub
					ArrayList<User> al=new ArrayList<User>();
					Intent i=new Intent(MainActivity.this,SecondActivity.class);
					for (int j = 0; j < list.size(); j++) {
						User u=list.get(j);
						if (adapter.map.get(j)) {
							al.add(u);
						}
					}
					i.putExtra("key", (Serializable)al);
					startActivity(i);
				}
			});

第二个页面接收

Intent i=getIntent();
		list=(ArrayList<User>) i.getSerializableExtra("key");




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值