在XML中,我们可以通过textColor属性设置文本颜色,比如android:textColor="#FF0000"。但是我如何通过编码来改变它呢?

我试过这样的方法:

holder.text.setTextColor(R.color.Red);

其中holder只是一个类,文本类型为TextView。红色是字符串中设置的RGB值(#FF0000)。

但是它显示的不是红色而是另一种颜色。我们可以在setTextColor()中传递什么样的参数?在文档中,它说的是int,但它是资源引用值还是其他什么?


当前回答

如果你在适配器中,仍然想使用在资源中定义的颜色,你可以尝试以下方法:

holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));

其他回答

我通常对任何视图都这样做:

myTextView.setTextColor(0xAARRGGBB);

在哪里

AA定义alpha(00为透明,FF为不透明) RRGGBB定义了正常的HTML颜色代码(如FF0000表示红色)。

还有一个:

TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
holder.text.setTextColor(Color.rgb(200,0,0));

or

myTextView.setTextColor(0xAARRGGBB);
holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));

getColor()被禁用

所以试试这个方法:

 tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));