繁体   English   中英

我在Android中具有复选框,图像视图和文本视图,我想在单击关联的文本视图时检查复选框

[英]I have checkbox, imageview and textview in android, I want to check my checkbox when i click the associated textview

这是我的代码。

    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);

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

使用CheckedTextView UI组件

要么

您需要手动进行编码。 将setonclicklistner添加到Textview并将复选框对象传递给它。 大量的代码示例可用。

只需将OnClickListener添加到TextView并选中/取消选中其中的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方法更改其状态。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM