从String创建变量名?

时间:2012-02-23 16:47:37

标签: java android

我正在制作Android应用程序并且它有很多图像(大约200个)。我想根据用户选择的内容显示特定的图像。

选项的格式为String,例如“USD”,“AUD”,“LKR”等。图像的格式为“usd.png”,“aud.png” ,“lkr.png”等。我已将图像放在/res/drawable-mdpi文件夹中,我通常会像R.drawable.usd那样访问它们,依此类推。

但在这种情况下,它[显然]很难做到(200多个图标)。那么无论如何我可以根据用户选择获得特定图像吗?例如,当用户选择“USD”时,我想获得名为“usd.png”的图像。有什么帮助吗?

提前致谢。

5 个答案:

答案 0 :(得分:2)

如果你可以构造资源的名称,你可以调用getResources()。getIdentifier()来获取id,然后你可以从那里获取它。

答案 1 :(得分:2)

答案 2 :(得分:0)

使用Map将String存储为键,图像名称作为值。例如:

Map<String, String> images = new HashMap<String, String>();
images.put("USD", "usd.png");        // store the reference
String usdImage = images.get("USD"); // retrieve the reference

答案 3 :(得分:0)

我不确定Android是否有按名称访问资源的方法,但是你总是可以使用反射在Java中做这些事情:

R.drawable.getClass().getField("nameGoesHere").get(null)  

答案 4 :(得分:0)

Reflection API正在使用Android。这是所有Java开发人员都应该学习的东西。