现象:当 ListView的Item上有一个CheckBox,点击ListView无响应,解决办法如下:
设置checkbox的android:focusable="false" 就行了。
另外:ListView的Item上有一个CheckBox 了,那怎么选中item的时候 这个checkbox也选中呢? 解决办法如下:
1:
android:focusable="false"
android:clickable="false"
2:activity 中使用:
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); } });
3:adapter中设置:
@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; }