我有一个json文件,其中包含我想在我的代码中使用的资源名称,但我不知道如何? Json文件
{
file1: "file1.xml",
file2: "file2.xml"
...
}
我需要做这样的事情
InputStream f1 = this.getResources().openRawResource(R.raw.file1);
InputStream f2 = this.getResources().openRawResource(R.raw.file2);
InputStream f3 = this.getResources().openRawResource(R.raw.file3);
在我的代码中进一步使用它
答案 0 :(得分:1)
试试这个:
String rawFileName = "file1.xml"
int resId = context.getResources().getIdentifier(rawFileName, "raw", context.getPackageName());
InputStream f1 = this.getResources().openRawResource(resId);`
答案 1 :(得分:1)
尝试使用Resources#getIndentifier()
方法,但您可能需要删除文件扩展名:
public static int getIdentifierForRawXmlFileName(Context context, String fileName) {
final Resources res = context.getResources();
final String packageName = context.getPackageName();
if (fileName.endsWith(".xml") {
fileName = fileName.subString(0, fileName.lastIndexOf(".xml"));
}
return res.getIdentifier(fileName, "raw", packageName);
}
您可以将其用作:
final int rawId = getIndetifierForRawXmlFileName(this, "file1.xml");
final InputStream is = getResources().openRawResource(rawId);