2

我有一个ListFragment包含多项选择ListViewCursorAdapter如果我在我的 to中设置布局android.R.layout.simple_list_item_multiple_choice,我将能够在我的ListView. 但是我想使用自定义布局并在检查项目时更改背景颜色。这似乎很简单,但我找不到我的问题的答案。我想过在我的适配器的 bindView 中设置颜色,但我不确定它属于哪里,因为我的适配器不知道检查了哪些项目。所以我尝试使用选择器并将其应用到我的 textview 的背景上,如下所示:

行.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/name"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center_vertical"
          android:textAppearance="?android:attr/textAppearanceMedium"
          android:minHeight="?android:attr/listPreferredItemHeight"
          android:padding="6dp"
          android:background="@drawable/list_selector"/>

list_selector.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Pressed -->
    <item android:state_pressed="true"
          android:drawable="@drawable/list_pressed" />

    <!-- Selected -->
    <item android:state_selected="true"
          android:drawable="@drawable/list_active" />

    <!-- Checked -->
    <item android:state_checked="true"
          android:drawable="@drawable/list_active" />

    <!-- Normal -->
    <item android:drawable="@drawable/list_normal" />
</selector>

按下状态正在工作,但不是选中状态。我想知道我的 TextView 是否被检查过。但如果不是,如何ListView跟踪检查的项目?

4

1 回答 1

1

android.R.layout.simple_list_item_multiple_choice的源代码使用 a CheckedTextView,因此您走在正确的道路上。只需将TextView布局中的 更改为CheckedTextView.

于 2013-10-02T13:36:24.363 回答