0

これが私のコードです。

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

3 に答える 3

0

ListViewを使用して、画像とチェックボックスを含むテキストを表示しているようです。

代わりに、CheckedTextViewを使用することをお勧めします。これは、CheckBoxと組み合わせたTextViewです。そして、TextView.setCompoundDrawablesWithIntrinsicBounds()を使用してImageViewを置き換えます。

次に、ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)によって複数選択モードを有効にできます。また、ListViewは、各行のチェック状態を管理するのに役立ちます。

于 2012-11-28T10:58:13.723 に答える
0

リストビューのチェックボックスでも同じ問題が発生します。

CheckedTextView UI コンポーネントを使用する

また

手動でコーディングする必要があります。setonclicklistner を Textview に追加し、それにチェックボックス オブジェクトを渡します。多くのコードサンプルが利用可能です。

于 2012-11-28T10:41:12.803 に答える
0

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

OnClick メソッドから状態を変更できるようにするには、cd を final として宣言する必要があることに注意してください。

于 2012-11-28T10:49:05.087 に答える