TextView setTextColor()不工作
我以编程方式创build这样的元素的列表(不是一个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中创build元素时,我会这样做
lagerstandText.setText("bla");
对于一些元素,我也是
lagerstandText.setTextColor(R.color.red);
和其他颜色。 虽然我不称为setTextColor()的元素是红色的,但是所有其他元素都是灰色的,不pipe我select了哪种颜色(即使它再次是相同的红色)。
这是为什么?
这个文档并不是很详细,但是在调用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。
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));
标准颜色你喜欢请与下面一起去。
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));
为了将来的参考,您可以使用以下内容:
String color = getString(Integer.parseInt(String.valueOf(R.color.my_color))); my_textView.setTextColor(Color.parseColor(color));
这样你可以使用你的色彩资源。
在R
类中定义的特定颜色(在xml布局中定义)的整数id不能作为parameter passing给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