如果我只知道运行时哪个资源,我如何从Resources获取字符串?

时间:2012-01-29 19:34:45

标签: java android

我正在制作游戏,我想从资源文件中提取apprpriate对话框,但是哪个字符串可以从一个级别拉到另一个级别。

我怎样才能让它发挥作用?

我想要这样的东西:

int level = 3;
String dialog = getResources().getString(R.string.["level_dialog_"+level]);

目标是使用字符串资源的名称加上级别找到apprpriate字符串资源ID。但当然,甚至不会编译。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

感谢AJcodez让我沿着正确的道路前进。即使你回答的不是正确的。

我自己找到了正确答案:

要按字符串名称获取资源,已有一个android函数作为Resources对象的一部分:

int id =  getResources().getIdentifier("level_"+1+"_intro", "array", getPackageName());
String[] level1 = getResources().getStringArray(id);

第一行,我获得了资源ID。参数是resournce的名称,类型(数组,id,字符串,drawable等),第三个参数是包名称。

在第二行中,我现在可以获得资源,就像使用R.array一样。

(注意自己:RTFM)

答案 1 :(得分:1)

我会将您的字符串存储在字符串数组中,然后通过数组的索引访问字符串。见这里:http://developer.android.com/guide/topics/resources/string-resource.html#StringArray