Android - listView 中的自定义 CheckedTextView 在点击时未被选中/禁用 SINGLE_CHOICE 模式

标签 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"/> 

复选框不会被切换。

  • 如果我在列表 adapter 中实现这样的 onClickListener :

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

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

  • 如果我在 ListView 中实现 setOnItemClickListener,复选框将不会被切换。

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

有什么方法可以为 SINGLE_CHOICE 模式 ListView 设置自定义布局?

最佳答案

您正在使用 ?android:attr/listChoiceIndicatorMultiple 而它应该是 ?android:attr/listChoiceIndicatorSingle 用于 SINGLE_CHOICE

关于Android - listView 中的自定义 CheckedTextView 在点击时未被选中/禁用 SINGLE_CHOICE 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290318/

相关文章:

javascript - 如何在 HTML 下拉列表中显示复选框?

listview - 在JFXListView中使用单元工厂将忽略JFoenix样式

Android:ListView 2.2 中的 ScrollBar 错误

android - 自定义 Android 屏幕保护程序(或 sleep 屏幕)

Android:是否可以将 ZIP 文件添加为原始资源并使用 ZipFile 读取它?

Android 使用 setonclickfillinintent 发送 parcelable

java - 如何通过以编程方式提供 SELECTALL CHECKBOX 来检查多选警报框中的所有项目

c# - 如果需要选择数据网格的行,请使用复选框列

android - 为 x86 构建 LibVLC

java - 在 Java Android 应用程序中使用 Kotlin 代码