请问如何获取listview中选中的checkbox?

解决方案 »

  1.   

    1 假设你传入的是一个实体到你的adapter
    2 给你的实体加一个isCheck的字段  设置getset
    3 给你的list中的item的checkbox设置oncheckchange事件
    4 一旦出发changge  那么改变isCheck的值
    5 for循环取值
      

  2.   

    listview 单击事情去控制选择
    可以给你帖点代码:list_view.setOnItemClickListener(new OnItemClickListener() { @Override
    public void onItemClick(AdapterView<?> parent, View view,
    int position, long id) { // TODO Auto-generated method stub MyListViewAdapter isadapter = (MyListViewAdapter)parent.getAdapter();
                    CheckBox iscb = (CheckBox) view.findViewById(R.id.cb_ok);
    iscb.toggle();
    // 单击 赋值
    isadapter.isSelected.put(position, iscb.isChecked());
    if (iscb.isChecked() == true) {
    // 你的操作 } else {
    // 你的操作
                           }

    }
    });
    // 首页liseview 数据适配器
    public static class MyListViewAdapter extends BaseAdapter {
    private ArrayList<HashMap<String, String>> myList;
    private Context myContext;
    //你要传的数据
    public static HashMap<Integer, Boolean> isSelected;
    public MyListViewAdapter() { } public MyListViewAdapter(Context context,
    ArrayList<HashMap<String, String>> list
    ) {
    this.myList = list;
    this.myContext = context;
    // 初始化checkbox 没有被选择
                             this.isSelected=initisSelectedfalse();
    }// 初始化默认都没有选择 myList你传进来的集合
    public static HashMap<Integer, Boolean> initisSelectedfalse(
    ) {
    HashMap<Integer, Boolean> isSelected = new HashMap<Integer, Boolean>();
    for (int i = 0; i < myList.size(); i++) {
    isSelected.put(i, false);
    }
    return isSelected;
    }
    @Override
    public int getCount() {
    // TODO Auto-generated method stub return myList.size();
    } @Override
    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return myList.get(position);
    } @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
    } @Override
    public View getView(final int position, View convertView,
    ViewGroup parent) {
    View view = convertView;
    if (view == null) {
    LayoutInflater ll = LayoutInflater.from(myContext);
    view = ll.inflate(R.layout.contact_list_item, null);
    }

    CheckBox ck = (CheckBox) view.findViewById(R.id.cb_ok);
    ck.setChecked(isSelected.get(position));
    // /////////////////////////////////////////////////////////
    return view;
    }
    }