android TextView setTextColor()不工作

ippsafx7  于 2023-09-28  发布在  Android
关注(0)|答案(6)|浏览(115)

我以编程方式创建了一个包含这些元素的列表(不是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()的元素是红色的,但所有其他元素都是灰色的,无论我选择哪种颜色(即使它又是相同的红色)。
为什么会这样?

liwlm1x9

liwlm1x91#

文档对此并不十分详细,但是在调用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));
bmvo0sr5

bmvo0sr52#

所以,有很多方法可以实现这个任务。

1.

int color = Integer.parseInt("bdbdbd", 16)+0xFF000000;
textview.setTextColor(color);

2.

textView.setTextColor(getResources().getColor(R.color.some_color));

3.

textView.setTextColor(0xffbdbdbd);

四个

textView.setTextColor(Color.parseColor("#bdbdbd"));

五个

textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int));
z9zf31ra

z9zf31ra3#

1.你喜欢的标准颜色,请与下面的颜色搭配。

textview.setTextColor(Color.select_color)

2.here要使用custwom颜色添加到color.xml文件

textview.setTextColor(getResources().getColor(R.color.textbody));

textView.setTextColor(Color.parseColor("#000000"));

subText.setTextColor(Color.rgb(255,192,0));
uemypmqf

uemypmqf4#

为了将来的参考,您可以使用以下内容:

String color = getString(Integer.parseInt(String.valueOf(R.color.my_color)));
my_textView.setTextColor(Color.parseColor(color));

这样你就可以利用你的色彩资源。

ilmyapht

ilmyapht5#

textView.setTextColor(Color.RED);
rnmwe5a2

rnmwe5a26#

R类中定义的特定颜色的整数id(在xml布局中定义)不能作为参数传递给View类的setTextColor()方法。必须通过以下代码行获取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

相关问题