我的 LinearLayout 中有一些 textView。它们是可点击的,我想让它们像 ListView 一样 onClick。对于listView,当用户单击一个项目时,我认为背景变为绿色。
我知道我可以手动执行此操作
tv.SetBackgroundColor(Color.GREEN);
但是是否有自动执行此操作的方法,例如自动管理选择的列表视图。
谢谢你。
我的 LinearLayout 中有一些 textView。它们是可点击的,我想让它们像 ListView 一样 onClick。对于listView,当用户单击一个项目时,我认为背景变为绿色。
我知道我可以手动执行此操作
tv.SetBackgroundColor(Color.GREEN);
但是是否有自动执行此操作的方法,例如自动管理选择的列表视图。
谢谢你。
您需要将背景定义为包含状态列表的新 XML 文件。
http://developer.android.com/guide/topics/resources/color-list-resource.html
例如,在您的可绘制文件夹中创建一个名为 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"
有关不同状态的更多信息,请参阅上面的链接。