Android 如何在ListView中突出显示已按下的项?

Android 如何在ListView中突出显示已按下的项?,android,android-layout,listview,Android,Android Layout,Listview,我正在使用下面的代码,但它不能正常工作:如果我选择了一个项目,背景就会改变。但是如果我只关注项目而不选择它,背景也会改变。为什么? 添加到我的列表视图: android:listSelector="@drawable/bg_key" @drawable/bg_键 <?xml version="1.0" encoding="utf-8"?> <selector android:id="@+id/myselector" xmlns:android="http://

我正在使用下面的代码,但它不能正常工作:如果我选择了一个项目,背景就会改变。但是如果我只关注项目而不选择它,背景也会改变。为什么?

添加到我的列表视图:

android:listSelector="@drawable/bg_key"
@drawable/bg_键

<?xml version="1.0" encoding="utf-8"?>
<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_activated="false"
        android:drawable="@color/activated_color" />

</selector>

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="activated_color">#1d1d1d</color>
</resources>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@android:color/holo_red_light" android:state_pressed="true"/>

</selector>

#1d

您可以使用以下方法突出显示/提供列表项的连锁反应:

在绘图文件中创建选择器项_ripple.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape>
            <solid android:color="@color/activated_color"></solid>
        </shape>
    </item>

    <item >
        <shape>
            <solid android:color="@android:color/transparent"></solid>
        </shape>
    </item>

</selector>

您可以在选择器文件中使用pressed状态

/drawable/list_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="activated_color">#1d1d1d</color>
</resources>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@android:color/holo_red_light" android:state_pressed="true"/>

</selector>

可能使用
pressed
focused
状态?@Rotwang我添加了state\u pressed=“true”state\u focused=“false”和view.setPressed(true);在onItemClick方法中,但它仍然不起作用。
添加到我的listview…
这不是每项选择吗?@Rotwang这是一个ListSelector您可以试试这个what is drawable-v21?在res文件夹中创建一个新目录,并将其命名为drawable-v21。这表示操作系统的当前API版本是否为
android:listSelector="@drawable/list_selector"