我在android中有checkbox,imageview和textview,当我点击相关的textview时,我想检查我的复选框

时间:2012-11-28 10:32:13

标签: android checkbox

这是我的代码。

    if (view == null) {         
        view = lInflater.inflate(
                R.layout.list_item_multiple_choice, null);
        vHolderMultiple = new ViewHolder();
        vHolderMultiple.tv = (TextView) view.findViewById(R.id.tvMultipleChoiceListItem);
        vHolderMultiple.cb = (CheckBox) view.findViewById(R.id.cbMultipleListItem);
        vHolderMultiple.iv = (ImageView) view.findViewById(R.id.ivMultiChoiceItem);
        view.setTag(vHolderMultiple);
    } 
    else {
        vHolderMultiple = (ViewHolder) view.getTag();
    }
    vHolderMultiple.tv.setText(optionArray.get(position).getOptionText());
    vHolderMultiple.cb.setChecked(lvAnswers.isItemChecked(position));
    if (optionArrayCopy.get(position).getImageUrl() != null && optionArrayCopy.get(position).getImageUrl().length() > 0) {
        final Bitmap bmp = loader.loadImageBitmap(optionArray.get(position).getImageUrl(), resDir);
        vHolderMultiple.iv.setVisibility(VISIBLE);
        if (bmp != null) {
            vHolderMultiple.iv.setImageBitmap(bmp);
        }
    } else
        vHolderMultiple.iv.setImageBitmap(null);

3 个答案:

答案 0 :(得分:0)

带有listview的复选框发生了同样的问题。

使用CheckedTextView UI组件

OR

您需要手动编码。将setonclicklistner添加到Textview&将复选框对象传递给它。在可用的净代码样本上。

答案 1 :(得分:0)

只需在TextView中添加一个OnClickListener,然后选中/取消选中其中的CheckBox。像这样:

vHolderMultiple.tv.setOnClickListener(new OnClickListener(){

    public void onClick(View v){

        if(vHolderMultiple.cb.isChecked())
            vHolderMultiple.cb.setChecked(false);
        else
            vHolderMultiple.cb.setChecked(true);
    }
});

请注意,您必须将cd声明为final才能从OnClick方法更改其状态。

答案 2 :(得分:0)

您似乎正在使用ListView来显示带图像和复选框的文本。

最好使用CheckedTextView,它是一个结合了CheckBox的TextView。并使用TextView.setCompoundDrawablesWithIntrinsicBounds()替换ImageView。

然后,您可以通过ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)启用多项选择模式。 ListView将有助于管理每行的检查状态。