如何在android中动态访问“strings.xml”中的值?

时间:2012-11-19 03:19:44

标签: android

App version 2.3.3

这就是我要找的......

我在“values / strings.xml”中有几个字符串。我希望根据字符串的“name”属性检索值,并将其用于我的应用程序。应该使用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)。

7 个答案:

答案 0 :(得分:4)

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

或者你可以使用

textBox.setText(R.string.A);

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

答案 1 :(得分:2)

您需要使用getResources()方法:

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

答案 2 :(得分: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中的字符串名称匹配,就会动态检索它们。

答案 3 :(得分:0)

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

String A = getString(R.string.a_string);

答案 4 :(得分:-1)

试试这个:

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

查看the link here.

答案 5 :(得分:-1)

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

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

答案 6 :(得分:-1)

您可以使用此代码:

getText(R.string.A);
  

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