0

我想在 TextView 上的按键上进行永久性颜色更改。

这是我的颜色选择器位于 res/color 文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#a7524a"/>
<item android:state_focused="true" android:state_enabled="false" android:color="#a7524a"/>
<item android:state_pressed="true" android:color="#a7524a"/>
<item android:color="#595959"/>
</selector>

在 TextView 中,我将其称为

android:textColor="@color/bright_text_dark_focused"

它工作正常。当用户 a 按下 TextView 项目并释放时,我想使颜色更改永久化。默认情况下,它会在发布时变为默认颜色。

更新:

我已将颜色选择器更改为

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">      
<item android:state_focused="true" android:color="#a7524a"/>
<item android:state_pressed="true"  android:color="#a7524a" />   
<item android:color="#595959"/>    
</selector>

这和以前一样。我已经添加了

android:textIsSelectable = "true"

TextView 中的属性。然后选择属性上的背景颜色消失。但是当我点击这些项目时,文本颜色会变成永久性的。为什么会发生这种情况的任何线索?实际上我在列表视图中有这个文本视图。背景颜色属性来自 ListView。

4

2 回答 2

0

我认为,如果您添加该行<item android:state_enabled="true" android:color="@color/bright_text_dark_focused"/>然后启用TextViewon touch,它将保留。只要您从不禁用它,就是这种情况。

于 2012-09-14T21:22:56.507 回答
0

android:state_activated 必须解决您的问题:

<item android:state_activated="true" android:color="#fff"/>

你也可以为你的 listView 设置这个:

mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

当 listView 项目点击这个时:

mListView.setItemChecked(position, true);
于 2013-11-29T11:00:56.533 回答