0

我觉得这个问题被发布了一千次。有几种情况我非常接近答案,但它总是从我的指缝中溜走。

我想要做的是,当我单击列表的一行时,我手动取消/选中该的 CheckBox 。

换句话说:当我单击 listView 行时,我必须获取与其关联的 CheckBox 对象,以便我可以更改它的值。

我觉得答案类似于调用或复制listview.setOnItemClickListener方法中的holder.CheckBox.setOnClickListener(它处理 CustomAdapter 中的 CheckBox 状态)方法,但我不知道该怎么做:(

为了清楚起见 - 我可以得到点击了哪一行,点击了哪个复选框,它们的位置以及关于它的每个数据。如果我单击复选框,则检查没有问题。我唯一不能做的就是在单击框旁边的文本时选中该框。

如果需要,我可以发布代码,但由于我不确定是否有必要,我会避免让这个问题成为文字墙。

4

2 回答 2

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);
        }
    }
});
于 2013-07-15T20:46:57.087 回答
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);
        }
    });
于 2013-07-15T20:49:17.520 回答