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");