Android - 单击/禁用SINGLE_CHOICE模式时,不会检查listView中的Custom CheckedTextView

时间:2012-04-24 00:46:06

标签: android listview checkbox checkedtextview

  • 当我使用android.R.layout.simple_list_item_single_choice中的布局作为列表项时,点击后会检查复选框,一切正常。

  • 但是当我使用布局时:

<CheckedTextView android:id="@+id/choice_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="CheckedTextView"
    android:clickable="true"
    android:focusable="true"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
    android:textSize="@dimen/text_size_medium"/> 

复选框不会切换。

  • 如果我在列表onClickListener中实施adapter这样的内容:

((CheckedTextView) convertView.findViewById(R.id.dp_quiz_answer_choice_item)).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        ((CheckedTextView) v).toggle();
    }
});

SINGLE_CHOICE模式被禁用(可以启用任意数量的复选框)。

  • 如果我在列表视图中实现setOnItemClickListener,则不会切换复选框。

mChoiceList.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int item,
                    long id) {
        mChoiceList.setItemChecked(item, true);
    }
});

有没有办法为SINGLE_CHOICE模式ListView设置自定义布局?

2 个答案:

答案 0 :(得分:1)

您正在使用?android:attr/listChoiceIndicatorMultiple,其中?android:attr/listChoiceIndicatorSingle适用于SINGLE_CHOICE

答案 1 :(得分:0)

对我来说有点奇怪,经过许多其他实验,我了解到idCheckedTextView中使用android.R.layout.simple_list_item_single_choice相同的@android:id/text1为我工作。标识为{{1}}。