我有一些字符串需要翻译和显示.这些字符串是变量.我在strings.xml文件中有翻译.
我想显示字符串的"翻译版本".例如,在Activity中:
String name = "Water";
TextView nameDisplay = new TextView(this).
nameDisplay.setText(name);
Run Code Online (Sandbox Code Playgroud)
在字符串文件中我有定义
<string name="Water">French word for Water</string>
Run Code Online (Sandbox Code Playgroud)
如果我使用这样的东西:
nameDisplay.setText(R.string.KnownName);
Run Code Online (Sandbox Code Playgroud)
它会奏效.但在我的情况下,名称存储在一个变量中,所以我不知道该怎么做才能使setText方法正常运行.
我目前的解决方法是
String translation = ""
if(name == "Water") {
translation = getString(R.string.Water);
}
else {
...
}
nameDisplay.setText(translation);
Run Code Online (Sandbox Code Playgroud)
......但这不能很好地扩展.
有什么建议?
我应该将翻译版本存储在变量中吗?
可能重复:
动态资源加载Android
在Android中,我可以从资源中加载一个字符串String s = getString(R.string.keyName).但是我的数据库中有一个类别列表,每个类别都有一个名称.如何获取该类别名称,然后根据它添加适当的字符串资源,以便它可以用于本地化?
基本上,我需要有keyName动力; 我自己的String变量.这可能吗?谢谢.
我正在开发一个移动图书馆应用程序.我有一个存储在原始文件夹中的3-4 db文件的书籍.如果我知道该书的名称,那么我首先将此文件复制到/databases/book_name.db,然后根据需要访问它们.我用
InputStream fileInputStream = getResources().openRawResource(R.raw.book_name);
Run Code Online (Sandbox Code Playgroud)
用于访问这些文件.
现在,我想传递书名,然后使用字符串book_name动态生成资源标识符R.raw.book_name.有没有办法生成这个标识符?