2

应用程序版本 2.3.3

这就是我要找的...

我在“values/strings.xml”中有几个字符串。我希望根据字符串的“名称”属性检索值并将其用于我的应用程序。xml 中应该使用哪个字符串的输入是动态的。这是一个例子......

我来自其他文件的输入 :: "A" => 这个值发生了变化。它可以是 A、B、C、D 中的任何值。

我在strings.xml中有不同的字符串,比如......

    <string name="A">AforApple</string>
<string name="B">BforBall</string>
<string name="C">CforCat</string>
<string name="D">DforDog</string>

现在,我如何以编程方式获取名称为“A”的字符串的值(AforApple)。

4

7 回答 7

4
String str = context.getResources().getString(R.string.A)

或者你可以使用

textBox.setText(R.string.A);

不要忘记导入包com.yourpackackage.R

于 2012-11-19T03:23:01.343 回答
2

您需要使用 getResources() 方法:

String a = getResources().getString(R.string.A);
于 2012-11-19T03:22:00.340 回答
0

只是为了记录,您还可以使用反射动态生成它。

int stringRes=R.string.class.getField("Here you put the dynamically generated input, such as A").getInt(null);
textView.setText(stringRes);

这将根据输入从字符串 XML 返回资源 int 值,只要输入值“A”与 XML 中的字符串名称匹配,就会动态检索它们。

于 2018-08-24T10:02:05.427 回答
0

要从 Android/Java 代码访问您在 XML 文件中定义的字符串资源/值,请使用 Android getString 方法,如下所示:

String A = getString(R.string.a_string);
于 2018-11-10T15:38:33.743 回答
-1

试试这个:

    String word = getResources().getString(R.string.A);

看看这里的链接。

于 2012-11-19T03:22:41.040 回答
-1

如果您的代码得到一个类似“A”的字符串,并且您试图在资源中动态查找与该名称匹配的字符串,我认为您不能这样做。

在需要访问这些字符串之前,您可能希望使用 arrays.xml 并从中构建一个 HashMap,而不是使用 strings.xml

于 2012-11-19T03:23:00.463 回答
-1

您可以使用以下代码:

getText(R.string.A);

基本上,您需要将资源 id 作为参数传递给 getText() 方法。

于 2015-04-22T09:01:12.113 回答