在 RecyclerView.Adapter 中更改 textView 的颜色

3

我希望在Adapter的onBindViewHolder中根据数据变量改变textView的颜色。我尝试过以下代码:

if (survey.getAnonymous() == 0) {
    holder.surveyIcon.setImageResource(R.drawable.ic_x);
    holder.surveyAnonymous.setTextColor(R.color.red);
} else {
    holder.surveyIcon.setImageResource(R.drawable.ic_check);
    holder.surveyAnonymous.setTextColor(R.color.green);
}

R.color.red会被红色下划线标出并显示:

应该使用getResources().getColor(R.color.red)

我尝试了这个方法,但还是出现了错误。 我已经尝试过以下方法:

holder.surveyAnonymous.setTextColor(R.color.red);
holder.surveyAnonymous.setTextColor(getResources().getColor(R.color.red));
holder.surveyAnonymous.setTextColor(getColor(R.color.red));
holder.surveyAnonymous.setTextColor(Color.parseColor(R.color.red);

这些方法都没有起作用,而且总是被红色下划线标记,正确的做法是什么?


1
我最终做了这个holder.surveyAnonymous.setTextColor(ContextCompat.getColor(v.getContext(), R.color.red)); - Nancy
1个回答

3

int getColor (Context context, int id)

翻译结果:

int getColor (上下文 context, 整数 id)

 holder.surveyAnonymous.setTextColor(ContextCompat.getColor(contextObject,(R.color.red)));

注意

Color.parseColor - 解析颜色字符串,并返回相应的颜色整数。

holder.surveyAnonymous.setTextColor(Color.parseColor("#54D66A");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接