TextView setTextColor() not working
我以编程方式创建这样的元素的列表(没有ListView,只是将它们添加到父级):
1 2 3 4 5 6 7 8 | <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创建元素时,我做到了
1 | lagerstandText.setText("bla"); |
对于某些元素,我也这样做
1 | lagerstandText.setTextColor(R.color.red); |
和其他颜色。 虽然我没有调用setTextColor()的元素是红色的,但是所有其他元素都是灰色的,无论我选择哪种颜色(即使它再次是相同的红色)。
这是为什么?
文档对此并不是很冗长,但在调用
使用以下命令以编程方式设置文本的颜色:
1 | textView.setTextColor(getResources().getColor(R.color.YOURCOLOR)); |
从支持库23开始,您必须使用以下代码,因为不推荐使用getColor:
1 | textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR)); |
因此,有很多方法可以完成这项任务。
1。
1 2 | int color = Integer.parseInt("bdbdbd", 16)+0xFF000000; textview.setTextColor(color); |
2。
1 | textView.setTextColor(getResources().getColor(R.color.some_color)); |
3。
1 | textView.setTextColor(0xffbdbdbd); |
4。
1 | textView.setTextColor(Color.parseColor("#bdbdbd")); |
5。
1 | textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int)); |
1.标准颜色你喜欢请跟下面。
1 | textview.setTextColor(Color.select_color) |
2.想要使用custwom颜色将其添加到color.xml文件中
1 | textview.setTextColor(getResources().getColor(R.color.textbody)); |
要么
1 | textView.setTextColor(Color.parseColor("#000000")); |
要么
1 | subText.setTextColor(Color.rgb(255,192,0)); |
为了将来参考,您可以使用以下内容:
1 2 | String color = getString(Integer.parseInt(String.valueOf(R.color.my_color))); my_textView.setTextColor(Color.parseColor(color)); |
这样您就可以使用颜色资源。
您必须通过以下代码行获取
1 2 | int para=getResources().getColor(R.color.your_color,null); view.setTextColor(para,null); |
方法
1 | The `second parameter( theme )` can be null |