0

我今天开始了 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”,因为放“消息”是行不通的,但放直接颜色名称(例如红色)有效,但仅适用于一种颜色。

我试图避免 case 语句,也是因为我想让它对许多颜色尽可能通用。任何人都可以建议这是否可能,以这种方式或以另一种方式。如果这是微不足道的,我很抱歉,但我对 Java 没有太多信心。

先感谢您。

4

2 回答 2

0

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

于 2013-08-25T20:43:19.410 回答
0

在此处Color查看该类的文档。

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

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

我没有测试过它,但它应该可以工作。为此不需要colors.xml文件。阅读Color该类的文档,不要忘记使用try-catch来处理IllegalArgumentExceptionparseColor()方法可以抛出的问题。

于 2013-08-25T20:45:32.147 回答