使用字符串变量从xml返回getString?

时间:2015-02-02 16:35:42

标签: java android xml

我是编程的新手,我正在尝试使用Android Studio创建Android应用。我试过搜索,但我的发现似乎并不是我想要的,因为它们似乎过于复杂。我在下面写的只是一个例子。

当用户输入“whale”时,我希望能够从string.xml返回一个字符串。在这种情况下,字符串是关于鲸鱼的信息。

这是我的java文件,animal已经是从表单输入的字符串。

TextView textview = new TextView(this);
String animalType = "water_" + animal; // This become water_whale if user typed whale
String animalInfo = getString(R.string.animalType); // This doesn't work
textView.setText(animalInfo);

这是我的string.xml

<string name="water_fish">Fish is a small bla...</string>
<string name="water_whale">A whale is an enourmous blabla...</string>
<string name="land_giraffe">Africa.</string>

我可能已经通过这种特殊的方式进行了隧道运输,我可能会错过一些显而易见的事情,或者有其他方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

R.string.anyIdentifer表示整数值。您无法使用它添加自己的标识符,只是无法在任何类上调用任何不存在的属性。如果你想用它的名字动态访问任何资源,那么就有不同的方法。

使用此

TextView textview = new TextView(this);
String animalType = "water_" + animal; 
int animalTypeId = getResources().getIdentifier(animalType, "string", getActivity().getPackageName())
String animalInfo = getResources().getString(animalTypeId);
textView.setText(animalInfo);

答案 1 :(得分:0)

String string=getResources().getString(R.string.water_whale);

您无法直接使用getString()方法。