我的LinearLayout中有一些textViews。 它们是可点击的,我想像在ListView上一样点击它们。 对于listView,当用户点击某个项目时,我认为背景变为绿色。
我知道我可以用
手动执行此操作tv.SetBackgroundColor(Color.GREEN);
但有没有自动执行此操作,例如listView自动管理选择。
谢谢。
答案 0 :(得分:1)
您需要将背景定义为包含状态列表的新XML文件。
http://developer.android.com/guide/topics/resources/color-list-resource.html
例如,在drawable文件夹中创建一个名为background_states.xml的文件,并编写如下内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@color/white" ></item>
<item
android:state_pressed="true"
android:drawable="@color/white" ></item>
<item
android:drawable="@color/black" />
</selector>
然后在TextView中将此新文件定义为背景:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_states"
有关不同状态的详细信息,请参阅上面的链接。