state_activated和ListView项目背景颜色

nom*_*mis 2 android android-emulator android-layout

我正在尝试为项目(如果选择)背景着色.我正在使用Android模拟器.我有一组XML文件res/drawable.

background.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/pressed" />
    <item android:drawable="@drawable/normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)

normal.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#000000" />
</shape>
Run Code Online (Sandbox Code Playgroud)

pressed.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#33ffff" />
</shape>
Run Code Online (Sandbox Code Playgroud)

还有我的list_item.xml,有...我的项目: <TextView ... android:background="@drawable/background" android:padding="6dp" />

好吧,在模拟器state_pressed="true"工作,但我希望所选项目保持彩色.所以,而不是state_pressed我尝试state_activated...但嘿......也不行.我的物品仍然是黑色......

需要一些帮助 :) !

谢谢

Tom*_*Tom 5

我相信state_activated就是你要找的东西.

在listselector.xml中:

<item android:state_activated="true" android:drawable="@drawable/whatever" />
<item android:state_activated="false" android:drawable="@android:color/transaprent" />
Run Code Online (Sandbox Code Playgroud)

然后在您的代码中,实现onItemClickListener并将您的视图设置为激活:

view.setActivated(true);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

汤姆