- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个简单文本项的 ListView 。这些项目中的 TextView 看起来像这样(它被包裹在 RelativeLayout
中):
<TextView
android:id="@+id/text_language_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:duplicateParentState="true"
android:textSize="16sp"
android:textStyle="bold" />
我想为文本使用以下颜色状态选择器,我称之为“dark_list_text_states.xml”:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@android:color/white"/>
<item android:color="@color/dark_list_text"/>
</selector>
通常,当然,我可以将其设置为 xml 中的 android:textColor
属性,但在这种情况下,我需要以编程方式将一个特定项目设置为不同的颜色,使用此选择器(“blue_text_states.xml”):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@android:color/white"/>
<item android:color="@color/selected_blue"/>
</selector>
所以我在 Adapter 中设置了文本颜色(language_name
和 selected
是在代码前面定义的):
TextView text_language_name = (TextView)view.findViewById(R.id.text_language_name);
if (text_language_name != null) {
text_language_name.setText(language_name);
int text_color = selected
? getResources().getColor(R.color.blue_text_states)
: getResources().getColor(R.color.dark_list_text_states);
text_language_name.setTextColor(text_color);
text_language_name.setDuplicateParentStateEnabled(true);
}
这工作正常,除了一个问题:单击项目时文本颜色不会改变。即使我在 setTextColor()
之后立即对项目调用 setDuplicateParentStateEnabled(true)
,该设置也会被完全忽略。
我已经通过注释掉设置文本颜色的 Java 代码并在 xml 中设置它来对此进行了测试,选择器工作正常。但是,如果我以编程方式设置 textColor,它就完全无法复制父状态。
有没有人见过这个?是否有解决方法,或者这只是我不得不忍受的 Android 错误?
最佳答案
好的,发现我的错误。我应该使用 getResources().getColorStateList()
而不是 getResources().getColor()
。把这个留给犯同样错误的其他人。
关于android - 使用 setTextColor() 以编程方式设置 Android TextView 文本颜色呈现 android :duplicateParentState invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16094654/
我正在尝试使用UITableViewCell作为我的应用程序中的主题来更改appearanceWhenContainedInInstancesOfClasses中的文本颜色。 这是代码行: [[UIT
你好,我的简单 Android 应用程序有问题,它无法更改另一个 Activity 中的文本颜色,即 displayActivity.java 这是我的代码示例。 问题是如果文本都相等它将变成绿色成功
我开发了带有笔划文字的Button import android.content.Context; import android.content.res.ColorStateList; import
例如, TextView feedback = (TextView) findViewById(R.id.feedback); feedback.setText("good job!"
我得到以下断言失败: -[UITextFieldLabel setTextColor:],/SourceCache/UIKit_Sim/UIKit-1448.89/UILabel.m:314 中的断言
我正在使用 NIAttributedLabel 在文本上显示链接。 NIAttributedLabel *label; label = [[NIAttr
我以编程方式创建此类元素的列表(不是 ListView,只是将它们添加到父级): 另外,我在 values/colors.xml 中定义了一些颜色。如您所见,ID 为“
我写了一个按钮,我想在触摸按钮时更改其文本颜色。代码如下: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [supe
我正在使用 TextInput 布局创建一个文本输入框。我想根据输入框的不同变体应用可绘制资源和颜色资源。我在res/color和res/drawable目录下创建了不同的xml资源文件。 publi
我正在尝试更改 RadioButton 的文本颜色(这是在 xml 布局中定义并且在 RadioGroup 中)在选择它时。 当我直接在 Eclipse Android 布局中更改文本颜色时编辑器通过
我正在使用以下代码来更改文本的颜色。此代码在某些 Android 设备上工作正常,但对于三星 Note 2 它不起作用。 TextView number=(TextView)findViewById(
为什么只有Android 5.1以上的setTextColor方法不起作用? TextView TextView32 = (TextView) findViewById(R.id.textView32
当调用 setTextColor 时,TextView 变黑或接近黑色。不知道为什么。任何帮助将不胜感激。 目前正在使用 holo.light。 如下设置我的TextView 当我尝试调用
我到处寻找答案,但找不到适合我情况的答案。我有几个问题,也想知道如何包括毫秒倒计时。我正在尝试获取格式为 00.00(秒.毫秒)的倒数计时器。一个按钮用于启动计时器。我使用的时间取决于按下的按钮,5、
每当收到 WM_CTLCOLORSTATIC 时,我都在尝试更改文本颜色。 LRESULT ProcessWindowMessage(_In_ HWND hWnd, _In_ UINT uMsg,
在 Windows 下使用 g++ 编译 c++ 程序时,出现“对`SetTextColor@8'的 undefined reference ”错误。完整的错误日志在这里 http://pastebi
如果在 moveCursor 方法之后使用 setTextColor 方法设置 QTextEdit 颜色,则不会产生任何效果。 terminal = QTextEdit() terminal.setT
我真的很困惑 TextView.setTextColor(int) 完全可以0xFFFFFFFF 作为输入值但不适用于十进制等价物4294967295 现在,我完全理解为什么第二个值完全超出了 int
我在 Android Fragment 中有一个 ListView,在行中填充了一个 SimpleCursorAdapter。 fragment 本身设置为 ListView 的 OnItemClic
这个问题在这里已经有了答案: What is a NullPointerException, and how do I fix it? (12 个答案) 关闭 5 年前。 正常情况下,正常运行。但是
我是一名优秀的程序员,十分优秀!