Android:为通过程序创建的TextView设置文本颜色

5

我已经通过编程创建了TextView,现在我想将文本颜色设置为TextView,以下是我的代码:

TableLayout ll = (TableLayout) findViewById(R.id.auditContent);
public TableRow row;
TextView txtNumber;

for (int i = 0; i < ItemCount; i++) {
row = new TableRow(MainActivity.this);
TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
                    row.setLayoutParams(lp);
                    row.setWeightSum(1f);
      txtNumber = new TextView(MainActivity.this);
      txtNumber.setGravity(Gravity.CENTER);
      txtNumber.setText("No." + count);
      txtNumber.setTextColor(getResources().getColor(R.color.blue)); //setting text color

 row.addView(txtNumber);

ll.addView(row, i);
    }

textcolor没有将颜色设置到TextView文本中,我做错了什么。我调试了代码,但没有错误。请帮忙,谢谢。

在string.xml中: <color name="blue">#33CCCC</color> 我没有使用color.xml。上述颜色对于xml的TextView可以正常工作。


文本颜色未设置为蓝色。 - W I Z A R D
为蓝色添加十六进制值 - M D
@Wizard 请发布您的 color.xml 文件。 - Hariharan
@Wizard 是的,我也想到了。它有任何改变吗?它只是保持不变吗?结果是否与仅注释掉setTextcolor()行时相同? - Thrakbad
你的代码应该可以工作,你确定你资源中的蓝色颜色是正确的吗? - Mark Buikema
显示剩余5条评论
7个回答

11
根据您的XML文件,您需要做出更改。
txtNumber.setTextColor(getResources().getColor(R.color.blue));

txtNumber.setTextColor(getResources().getString(R.color.blue));

此外,您可以在values文件夹中创建color.xml文件,并在其中使用。

<color name="mycolor">#33CCCC</color>

现在只需使用这种方式

txtNumber.setTextColor(getResources().getColor(R.color.mycolor));

我正在使用 for 循环,有问题吗? - W I Z A R D
如果你正在使用for循环,那么你可以使用TextView数组。 - Piyush
我现在可以做到,我想将textview的文本颜色设置为setTextColor - W I Z A R D
1
你可以使用 "textview[i].setTextColor();" 这个代码。 - Piyush
txtNumber[i].setTextColor(getResources().getColor(R.color.blue)); 不起作用。 - W I Z A R D

6

从 Android Support Library 23 开始

txtNumber.setTextColor(ContextCompat.getColor(context, R.color.your_color));

1

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


0

使用

text.setTextColor(Color.rgb(200,0,0));
setTextColor(Color.parseColor("#FFFFFF"));
text.setTexColor(getResources().getColor()(R.color.colorname)

确保您的资源将会

#eaeaea


当他需要从XML获取颜色时,“not a real solution”并不是一个真正的解决方案。 - Thrakbad
@Thrakbad - 你没看到他写的第三个选项吗?它从XML文件中获取颜色,并以编程方式设置它。 - Khay

0

//定义全局变量

int color;

// 在 onCreate 中

color = Integer.parseInt("YOUR COLOR CODE", 16)+0xFF000000;
{
 txtNumber = new TextView(MainActivity.this);
 txtNumber.setGravity(Gravity.CENTER);
 txtNumber.setTextColor(color); //setting text color
}

0
使用此函数以编程方式设置 TextView 颜色。
private void setViewColor(TextView inputTextView, int colorId) {
    //From API 23, getResources().getColor() is deprecated
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
        inputTextView.setTextColor(ContextCompat.getColor(context, colorId));
    } else {
        inputTextView.setTextColor(context.getResources().getColor(colorId));
    }
}

-2

使用此方法更改文本颜色:

textview.setTextColor(new Color().parseColor("#ffffff"));

我在每个项目中都使用这个。试试这个吧。 - Naval Sharma

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