直接上代码了:

<CheckBox         android:id="@+id/checkbox" android:focusable="false" // 必须有 android:clickable="false" // 必须有        android:layout_marginLeft="20dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/>

public class ListViewCheckBoxActivity extends Activity {    private ListView listview;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                listview = (ListView) findViewById(R.id.listview);        MyAdapter adapter=new MyAdapter(this);            listview.setAdapter(adapter);            listview.setItemsCanFocus(false);            listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);            listview.setOnItemClickListener(new OnItemClickListener(){                @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {                // TODO Auto-generated method stub                System.out.println("aa");                ViewHolder vHollder = (ViewHolder) view.getTag();                    //在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。                    vHollder.cBox.setChecked(true);                boolean check = vHollder.cBox.isChecked();                MyAdapter.isSelected.put(position, check);             }            });      }}

package com.lee0000.ListViewCheckBox;import java.util.ArrayList;    import java.util.HashMap;    import java.util.List;    import java.util.Map;        import android.content.Context;    import android.view.LayoutInflater;    import android.view.View;    import android.view.ViewGroup;    import android.widget.BaseAdapter;    import android.widget.CheckBox;    import android.widget.ImageView;    import android.widget.TextView;        public class MyAdapter extends BaseAdapter {        private LayoutInflater mInflater;        private List<Map<String, Object>> mData;        public static Map<Integer, Boolean> isSelected;        public MyAdapter(Context context) {            mInflater = LayoutInflater.from(context);            init();        }            //初始化        private void init() {            mData=new ArrayList<Map<String, Object>>();            for (int i = 0; i < 25; i++) {                Map<String, Object> map = new HashMap<String, Object>();                map.put("title", "第" + (i + 1) + "行的标题");                mData.add(map);            }                    //这儿定义isSelected这个map是记录每个listitem的状态,初始状态全部为false。            isSelected = new HashMap<Integer, Boolean>();            for (int i = 0; i < mData.size(); i++) {                isSelected.put(i, false);            }        }            @Override        public int getCount() {            return mData.size();        }            @Override        public Object getItem(int position) {            return mData.get(position);        }            @Override        public long getItemId(int position) {            return position;        }            @Override        public View getView(int position, View convertView, ViewGroup parent) {            ViewHolder holder = null;            //convertView为null的时候初始化convertView。            if (convertView == null) {                holder = new ViewHolder();                convertView = mInflater.inflate(R.layout.listviewcontent, null);                holder.title = (TextView) convertView.findViewById(R.id.text);                holder.cBox = (CheckBox) convertView.findViewById(R.id.checkbox);                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }                     holder.title.setText(mData.get(position).get("title").toString());            holder.cBox.setChecked(isSelected.get(position));            return convertView;        }            public class ViewHolder {            public TextView title;            public CheckBox cBox;        }    }    

更多相关文章

  1. Android(安卓)Choreographer 初始化
  2. 开关
  3. 有关XML的点击状态背景图的设置
  4. Android调用打电话(Call Phone)
  5. 关于Android的selector小用法
  6. Android源代码目录组成介绍-android学习之旅(97)
  7. android button 正常状态,按下状态
  8. android 去掉顶部状态栏
  9. android selector 背景选择器的使用, button (未点击,点击,选中保持

随机推荐

  1. YUV420图像旋转90算法的优化
  2. Linux手机打电话代码分析
  3. Android(安卓)多进程通信
  4. Android实现IOS越界回弹的效果
  5. Android(安卓)studio 使用NDK 实现串口
  6. Android(安卓)工具
  7. android imageview显示不全或者gilde加载
  8. android:background="@drawable/"图片拉
  9. Android中实现跑马灯效果
  10. Android(安卓)Jni中使用线程及回调更新UI