【发布时间】:2011-07-19 07:22:55
【问题描述】:
我有一个可点击的 TextView,我想给它一些颜色。但我不知道怎么做。以下是我正在使用的两个文件中的相关代码 sn-ps:
TextView title = new TextView(this);
title.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
title.setTextColor(R.color.textcolor);
title.setText(titleLine);
title.setTypeface(null, Typeface.BOLD);
title.setClickable(true);
title.setId(idLine);
title.setFocusable(true);
title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/* Irrelevant code */
}
});
这是我的 textcolor.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="#000000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#000000"/> <!-- focused -->
<item android:color="#000000"/> <!-- default -->
</selector>
当我通过键入 title.setTextColor(R.color.textcolor); 使用 textcolor 文件时,无论我是否按下它,textcolor 都会变成灰色。这很奇怪,因为我在所有颜色字段中都写了“#000000”。
但是如果我删除 setTextColor 代码,让 textView 变成浅灰色,当我按下它时,它变成黑色。但这不是我想要的颜色。
那么,谁能帮我解决这个问题?
澄清一下:我希望能够在文本正常、按下和聚焦时指定文本的颜色。
【问题讨论】:
-
对于通过搜索引用此页面的人,如果您希望使用颜色而不是
ColorStateList,请参考我的回答。我的解决方案无需在 Java 中编写任何代码即可工作 :)
标签: android colors onclick textview hyperlink