Android:在ListView中单击类似按钮时设置TextView颜色

Android:在ListView中单击类似按钮时设置TextView颜色,android,android-listview,textview,Android,Android Listview,Textview,我的线性布局中有一些文本视图。 他们是可点击的,我想让他们像一个列表视图一样点击。 对于listView,当用户单击一个项目时,我想背景会变成绿色 我知道我可以用手动方式完成这项工作 tv.SetBackgroundColor(Color.GREEN); 但是是否有一些自动的方法可以做到这一点,比如对于listView,选择是自动管理的 谢谢。您需要将后台定义为包含状态列表的新XML文件 例如,在drawable文件夹中创建一个名为background_states.xml的文件,并编写如下

我的线性布局中有一些文本视图。 他们是可点击的,我想让他们像一个列表视图一样点击。 对于listView,当用户单击一个项目时,我想背景会变成绿色

我知道我可以用手动方式完成这项工作

tv.SetBackgroundColor(Color.GREEN);
但是是否有一些自动的方法可以做到这一点,比如对于listView,选择是自动管理的


谢谢。

您需要将后台定义为包含状态列表的新XML文件

例如,在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"

默认情况下,listview是使用此类特定功能定义的。我想我们不能为textview这样做。检查这个[1][1]:它可能会帮助你这似乎是个好主意。我有一个问题,我在xml文件中遇到此错误:错误:错误:找不到与给定名称匹配的资源(在'drawable'处,值为'@Color/green')。格式为@Color/Color\u name用于自定义颜色,它们必须在res/values/colors.xml文件中定义。如果你想使用Android预定义的颜色,你应该写@Android:color/greenHm,这不适合我,我正在线性布局中添加动态(编程)文本视图。对于每台电视,我使用的是TV.setBackgroundColor(R.drawable.background_states);但是当点击时,一切都没有改变。你能试一下tv.setBackgroundResource(R.drawable.background_states)吗?我现在在E/AndroidRuntime(2768)上收到这个错误:由:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#5:标记需要一个“drawable”属性或定义一个drawable的子标记