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)。
答案 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)
答案 5 :(得分:-1)
如果您的代码获得类似“A”的字符串,并且您尝试在资源中动态查找与该名称匹配的字符串,我认为您不能这样做。
您可能希望在需要访问这些字符串之前使用arrays.xml并从中构建HashMap,而不是使用strings.xml
答案 6 :(得分:-1)
您可以使用此代码:
getText(R.string.A);
基本上,您需要将资源ID作为参数传递给getText()方法。