这是我的代码。
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);
答案 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将有助于管理每行的检查状态。