我以编程方式创建了这样的元素的列表(没有ListView,只是将它们添加到父元素中):
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_weight="1">
<TextView android:id="@+id/filiale_name"
android:layout_width="fill_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/lagerstand_text"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textSize="10sp" android:textColor="@color/red"/>
</LinearLayout>
另外,我在values / colors.xml中定义了一些颜色。如您所见,ID为“lagerstand_text”的TextView默认将其颜色设置为红色。这很有效。
在Java中创建元素时,我做
lagerstandText.setText("bla");
对于某些元素我也是
lagerstandText.setTextColor(R.color.red);
等颜色。虽然我没有调用setTextColor()的元素是红色的,但是其他所有元素都是灰色的,无论我选择哪种颜色(即使它再次是相同的红色)。
为什么?
答案 0 :(得分:199)
文档对此并不十分冗长,但在调用setTextColor
时不能仅使用R.color整数。您需要致电getResources().getColor(R.color.YOURCOLOR)
以正确设置颜色。
使用以下命令以编程方式设置文本颜色:
textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));
从支持库23开始,您必须使用以下代码,因为不推荐使用getColor:
textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR));
答案 1 :(得分:31)
因此,有很多方法可以完成这项任务。
<强> 1 强>
int color = Integer.parseInt("bdbdbd", 16)+0xFF000000;
textview.setTextColor(color);
<强> 2 强>
textView.setTextColor(getResources().getColor(R.color.some_color));
第3 强>
textView.setTextColor(0xffbdbdbd);
<强> 4 强>
textView.setTextColor(Color.parseColor("#bdbdbd"));
<强> 5 强>
textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int));
答案 2 :(得分:1)
供将来参考,您可以使用以下内容:
String color = getString(Integer.parseInt(String.valueOf(R.color.my_color)));
my_textView.setTextColor(Color.parseColor(color));
通过这种方式,您可以使用色彩资源。
答案 3 :(得分:1)
textview.setTextColor(Color.select_color)
2.想要使用custwom颜色将其添加到color.xml文件中
textview.setTextColor(getResources().getColor(R.color.textbody));
或
textView.setTextColor(Color.parseColor("#000000"));
或
subText.setTextColor(Color.rgb(255,192,0));
答案 4 :(得分:0)
R
类中定义的特定颜色(在xml布局中定义)的整数id不能作为参数传递给setTextColor()
类的View
方法。
您必须通过以下代码行获取setTextColor()
的参数:
int para=getResources().getColor(R.color.your_color,null);
view.setTextColor(para,null);
方法getColor(int id)
已弃用...而是使用上面代码行中的getColor(int id,Resources.Theme theme)
。
The `second parameter( theme )` can be null