我觉得这个问题被贴了一千次。在几种情况下,我非常接近答案,但它总是滑过我的手指。
我想要做的是,当我点击列表的一行时,我手动取消/检查该行的CheckBox 。
换句话说:当我点击listView行时,我必须获取与之关联的CheckBox对象,以便我可以更改它的值。
我觉得答案就像在 listview.setOnItemClickListener 方法中调用或复制 holder.CheckBox.setOnClickListener (处理CustomAdapter中的CheckBox状态)方法,但我不知道怎么做:(
要清楚 - 我可以点击哪一行,点击了哪个复选框,它们的位置以及它的每个数据。如果我单击checkBox,它会被检查没问题。我唯一不能做的就是当我点击框旁边的文字时勾选方框。
我可以根据要求发布代码,但由于我不确定是否有必要,我会避免将此问题作为文本之墙。
答案 0 :(得分:0)
我有一个你需要的例子,但我有一个图像,当你点击它时改为另一个:
final ImageView ui_fav = (ImageView) item.findViewById(R.id.fav_channelrow);
if (canales.get(position).getIsFav() == true) {
ui_fav.setImageResource(R.drawable.star);
} else {
ui_fav.setImageResource(R.drawable.silver_star);
}
ui_fav.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (canales.get(position).getIsFav()) {
ui_fav.setImageResource(R.drawable.silver_star);
canales.get(position).setIsFav(false);
} else {
ui_fav.setImageResource(R.drawable.star);
canales.get(position).setIsFav(true);
}
}
});
答案 1 :(得分:0)
ListView myListView = (your listView);
myListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ViewGroup currentItem = (ViewGroup)myListView.getChidAt(arg2);
(CheckBox) currentCheckBox = currentItem.findViewById(---id of the checkBox );
currentCheckBox.setChecked(true);
}
});