在Listview中如果item中含有checkbox会使itemview的setonitemchecklistingner失效,我们可以通过设置checkbox的clickbale的值为false来解决这个问题··然而对与点击itemview来选中checkbox(设置checkbox的状态)又是一个问题··这时候我们要在itemview关联checkbox··如下·

lvMessagebox.setOnItemClickListener(new AdapterView.OnItemClickListener()

 {
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
RelativeLayout view1 = (RelativeLayout) arg0.getChildAt(arg2); (这个代表在checkbox的布局文件下的第一层布局)
RelativeLayout view = (RelativeLayout) view1.getChildAt(); (这个代表在checkbox的布局文件下的第二层布局)
CheckBox box = (CheckBox) view.findViewById(R.id.checkbox_editor); (在第二层布局中找到checkbox控件)
box.setChecked(!box.isChecked()); (这个就是关键设置)
}
});

这样我们就可以通过点击itemview来改变checkbox的状态··很方便·

04-26 22:59