以编程方式访问资源名称

leo*_*sas 12 java android

我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们.

int c = Getter.getCurrentNumber();
String[] info = getResources().getStringArray(R.array.n_<c>);
Run Code Online (Sandbox Code Playgroud)

因此,如果c == 12,info应该是名为"n_12"的字符串数组.有没有办法做到这一点,并避免用数百个案例做一个switch语句?

谢谢

Xav*_*Gil 17

您可以像这样获取资源ID

int c = Getter.getCurrentNumber();
String resource = "n_" + c;
int id = getResources().getIdentifier(resource, "array", "com.your.project");
Run Code Online (Sandbox Code Playgroud)

然后只使用该ID

String[] info = getResources().getStringArray(id);
Run Code Online (Sandbox Code Playgroud)

看看这里的另一个例子getResources().getIdentifier().