Java 以编程方式访问资源名称
我的资源文件中有许多字符串数组,我希望根据用户输入以编程方式访问它们Java 以编程方式访问资源名称,java,android,Java,Android,我的资源文件中有许多字符串数组,我希望根据用户输入以编程方式访问它们 int c = Getter.getCurrentNumber(); String[] info = getResources().getStringArray(R.array.n_<c>); int c=Getter.getCurrentNumber(); String[]info=getResources().getStringArray(R.array.n); 因此,如果c==12,info应该是名为“n
int c = Getter.getCurrentNumber();
String[] info = getResources().getStringArray(R.array.n_<c>);
int c=Getter.getCurrentNumber();
String[]info=getResources().getStringArray(R.array.n);
因此,如果c==12,info应该是名为“n_12”的字符串数组。
有没有办法做到这一点,避免在数百个案例中使用switch语句
谢谢您可以这样获得资源id
int c = Getter.getCurrentNumber();
String resource = "n_" + c;
int id = getResources().getIdentifier(resource, "array", "com.your.project");
那就用那个id吧
String[] info = getResources().getStringArray(id);
查看
getResources().getIdentifier()
上的另一个示例,如果您希望按名称(以编程方式)获取资源,但不确定如何按名称寻址资源(但您知道如何通过R访问),可以执行以下操作:
- 首先打印准确的资源名称,如下所示:
Log.d(“,context.getResources().getResourceName(R.id.whichYouAlreadyKnow))代码>
(注意:R.id.whichoualreadyknow可以是R.string.*R.drawable.*等…)
现在您知道了确切的资源地址名称
- 取打印的名称并按原样使用,如下所示:
int id=getResources().getIdentifier(上面打印的资源名称,null,null)代码>
干杯我已经更新了答案。现在有用吗?