我正在尝试在选中项目时设置项目的颜色。即,我的列表通常是灰色的,但我希望用户选择的项目在按下时会发黄。
在onCreate
方法中,我尝试使用getListView().setSelector(R.xml.list_pressed)
然而,这表明改变整个列表的背景颜色而不是单个元素的奇怪行为!我很难过为什么会这样。
ListActivity
是TabActivity
的一部分,如果这有所不同。
感谢。
编辑:这是list_pressed.xml
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@color/darkgray" />
<item
android:state_pressed="true"
android:drawable="@color/yellow" />
<item
android:state_focused="true"
android:drawable="@color/darkgray" />
</selector>
答案 0 :(得分:1)
您没有android:state_pressed="false"
你可能在android:state_enabled="false"
犯了一个错误,你的xml应该这样读:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@color/darkgray" />
<item
android:state_pressed="true"
android:drawable="@color/yellow" />
</selector>
答案 1 :(得分:0)
我发现了这个问题。事实证明我已经为xml文件中的每个项目设置了背景颜色,并且选择器不会覆盖它。用list_pressed替换背景作为drawable修复了问题。我很惊讶我之前没有注意到这一点。 &GT; _&LT;