相关疑难解决方法(0)

使用变量访问R.string的内容以表示资源名称

我有一些字符串需要翻译和显示.这些字符串是变量.我在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)

......但这不能很好地扩展.

有什么建议?

我应该将翻译版本存储在变量中吗?

resources android

28
推荐指数
2
解决办法
2万
查看次数

R.string; 从动态密钥名称中获取字符串

可能重复:
动态资源加载Android

在Android中,我可以从资源中加载一个字符串String s = getString(R.string.keyName).但是我的数据库中有一个类别列表,每个类别都有一个名称.如何获取该类别名称,然后根据它添加适当的字符串资源,以便它可以用于本地化?

基本上,我需要有keyName动力; 我自己的String变量.这可能吗?谢谢.

resources android getstring

13
推荐指数
1
解决办法
3万
查看次数

如何在android中动态生成原始资源标识符?

我正在开发一个移动图书馆应用程序.我有一个存储在原始文件夹中的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.有没有办法生成这个标识符?

android

13
推荐指数
2
解决办法
9069
查看次数

标签 统计

android ×3

resources ×2

getstring ×1