listView里面使用checkBox;
public class MainActivity extends AppCompatActivity { private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { lv = (ListView) findViewById(R.id.lv); lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); lv.setAdapter(new MyAdapter()); } class MyAdapter extends BaseAdapter { @Override public int getCount() { return 100; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return i; } @Override public View getView(final int postion, View convertView, ViewGroup viewGroup) { if (convertView == null) { convertView = View.inflate(MainActivity.this, R.layout.item, null); } final AppCompatCheckBox checkBox = (AppCompatCheckBox) convertView.findViewById(R.id.checkbox); checkBox.setChecked(lv.isItemChecked(postion)); checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.i("lalalla","onClick"+checkBox.isChecked()); lv.setItemChecked(postion,checkBox.isChecked()); Log.i("lalalla","CheckedItemCount = "+lv.getCheckedItemCount()); Log.i("lalalla","CheckedItemCount = "+lv.getCheckedItemPositions()); } }); return convertView; } } }simpleAdapter里面使用checkBox:
SimpleAdapter adapter = new SimpleAdapter(this,items,R.layout.item,new String []{"isSelected","name","number"},new int[] {R.id.check,R.id.name,R.id.number}){ @Override public View getView(final int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); @SuppressWarnings("unchecked") final HashMap<String,Object> map = (HashMap<String, Object>) this.getItem(position); //获取相应View中的Checkbox对象 CheckBox checkBox = (CheckBox)view.findViewById(R.id.check); checkBox.setChecked((Boolean) map.get("isSelected")); //添加单击事件,在map中记录状态 // 通过判断checkbox是否被选中来确定联系人是否被放在names和numbers两个数组中。 checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { map.put("isSelected", ((CheckBox)view).isChecke()); if(((CheckBox)view).isChecked()){ Toast.makeText(ListContacts.this,"选中了"+ map.get("name"), 0).shou (); names.add((String) map.get("name")); numbers.add((String) map.get("number")); }else{ names.remove(map.get("name")); numbers.remove(map.get("number")); } } }); return view; } }; list.setAdapter(adapter);