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

Java 如果我在运行时只知道哪个资源,我如何从资源中获取字符串?,java,android,Java,Android,我正在制作一个游戏,我想从资源文件中拖出适当的对话框,但是要拖出的字符串会随着级别的变化而变化 我怎样才能让它工作呢 我想要像这样的东西: int level = 3; String dialog = getResources().getString(R.string.["level_dialog_"+level]); 目标是使用字符串资源的名称加上级别来找到适当的字符串资源ID。当然,这甚至不会编译 正确的方法是什么?我会将字符串存储在字符串数组中,然后通过数组的索引访问字符串。请看这里:谢

我正在制作一个游戏,我想从资源文件中拖出适当的对话框,但是要拖出的字符串会随着级别的变化而变化

我怎样才能让它工作呢

我想要像这样的东西:

int level = 3;
String dialog = getResources().getString(R.string.["level_dialog_"+level]);
目标是使用字符串资源的名称加上级别来找到适当的字符串资源ID。当然,这甚至不会编译


正确的方法是什么?

我会将字符串存储在字符串数组中,然后通过数组的索引访问字符串。请看这里:

谢谢AJcodez让我沿着正确的道路前进。即使你的答案不对

我自己找到了正确的答案:

要按字符串名称获取资源,资源对象中已经有一个android函数:

int id =  getResources().getIdentifier("level_"+1+"_intro", "array", getPackageName());
String[] level1 = getResources().getStringArray(id);
第一行,我得到资源id。参数是资源的名称、类型(数组、id、字符串、drawable等),第三个参数是包名

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


(自我提示:RTFM)

好吧,也许我应该举个更好的例子。因为我实际拥有的是每一层的数组。我可以创建一个字符串数组吗?在这种情况下,您可能需要序列化数据,并将其放入数组中。我只需要使用toString()并创建一个快速方法来获取数组的字符串表示形式,然后将数组重新组合在一起。或者可以将Java中的数组存储在静态类中。如果不改变,可能会更容易。