TextView setTextColor()不起作用

时间:2011-05-30 14:01:47

标签: android colors textview

我以编程方式创建了这样的元素的列表(没有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()的元素是红色的,但是其他所有元素都是灰色的,无论我选择哪种颜色(即使它再次是相同的红色)。

为什么?

5 个答案:

答案 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)

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