如何更改动态匹配用户输入字符串的文本颜色

时间:2013-08-25 20:32:53

标签: java android text colors

我今天开始开发Android应用程序并希望制作一个小应用程序,它将一些文本作为输入(一种颜色),并返回用户选择的颜色的文本输入。

我开始以这种方式创建colors.xml:

<color name="white">#FFFFFF</color>
<color name="yellow">#FFFF00</color>
...

然后我在主活动中创建了一个EditText,以及一个用于显示彩色文本的活动,其中包含onCreate:

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(70);
textView.setText(message);

哪个工作正常,但我无法管理一种方法来检索文本字符串并将其与colors.xml中的颜色匹配。我正在考虑BASH中的参数替换,例如:

textView.setBackgroundColor(getResources().getColor(R.color.XXXXXX));

但是我不知道要放什么而不是“XXXXXX”,因为放“message”不起作用,但是直接颜色名称(例如红色)可以使用,但只适用于一种颜色。

我正在努力避免案例陈述,也因为我想尽可能多地使用它。任何人都可以通过这种方式或其他方式建议这是否可行。我很抱歉,如果这是微不足道的,但我对Java没有多少信心。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

这个R.color.XXXXXX是一个整数。您需要获取整个参数而不仅仅是XXX,基本上您可以将颜色存储在静态整数变量中,然后根据您的条件使用它们。希望这会有所帮助。

答案 1 :(得分:0)

查看Colorhere的文档。

基本上,如果你想设置message字符串的颜色,你可以这样做:

textView.setBackgroundColor(Color.parseColor(message));

我没有测试过,但应该可以使用。此处不需要 colors.xml 文件。 阅读Color类的文档,不要忘记对IllegalArgumentException方法可以抛出的parseColor()使用 try-catch