StateListDrawable

3

我有一个在ListActivity中构建的listView。当项目被按下时,我希望行的背景色发生变化。

因此,在我的ListActivity中编写了以下代码:this.getListView().setSelector(R.drawable.my_custom_selector);

这是my_custom_selector.xml的内容:

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

drawable/selector是一个选择器.9.png。

问题在于什么都没有发生。

但是:当我用颜色替换这个可绘制对象时,当我按下一行时整个屏幕都会变成这种颜色。

你能帮帮我吗?

2个回答

1
尝试在.xml文件中设置您的列表视图选择器,例如在您的列表视图中。
android:background="@drawable/your_selector"

这里有一些小而好的教程,可以看看。它也可以帮助你解决问题。


我在XML中没有ListView。这是一个ListActivity。(顺便说一句,如果我在XML中有一个ListView,我可以在XML中使用ListSelector并且它会起作用)。因此,似乎唯一的方法是在ListActivity中使用this.getListView()来获取ListView。 - mlwacosmos
您可以重写onclick、onfocus方法来更改列表视图的背景颜色。 - Pankaj Kumar

0
  1. 设置ListviewItem的setSelector代码错误。您必须在xml中定义一个listviewItem并设置其setSelector,而不是设置ListView的setSelector。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接