我今天开始开发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没有多少信心。
提前谢谢。
答案 0 :(得分:0)
这个R.color.XXXXXX是一个整数。您需要获取整个参数而不仅仅是XXX,基本上您可以将颜色存储在静态整数变量中,然后根据您的条件使用它们。希望这会有所帮助。
答案 1 :(得分:0)
查看Color
班here的文档。
基本上,如果你想设置message
字符串的颜色,你可以这样做:
textView.setBackgroundColor(Color.parseColor(message));
我没有测试过,但应该可以使用。此处不需要 colors.xml 文件。
阅读Color
类的文档,不要忘记对IllegalArgumentException
方法可以抛出的parseColor()
使用 try-catch 。