0
我在res/raw文件夾中有一個xml文件,我想在我的應用程序中使用它。爲什麼當我在真實設備上調試時,fileList()沒有看到它?Android ContextWrapper fileList()沒有看到我的文件
我在res/raw文件夾中有一個xml文件,我想在我的應用程序中使用它。爲什麼當我在真實設備上調試時,fileList()沒有看到它?Android ContextWrapper fileList()沒有看到我的文件
ContextWrapper
的fileList()
不會返回res/raw的內容,而是存儲在上下文的應用程序包E.g(/data/data/your.app/
)中的文件。要檢索res/raw的內容,您可以使用反射。例如。
public ArrayList<String> listRaw() {
ArrayList<String> raw = new ArrayList<>();
Field[] fields = R.raw.class.getFields();
for (int i = 0; i < fields.length; i++) {
raw.add(fields[i].getName());
}
return raw;
}
它會返回一個List<String>
與res/raw
內容。如果你想獲得的ID,你可以使用
getResoruces().getIndentifier(name, "raw", getPackageName());
編輯,該文件
private void copyFile() {
InputStream in = getResources().openRawResource(R.raw.myresource);
FileOutputStream out = openFileOutput("filename", Context.MODE_PRIVATE);
byte[] buff = new byte[1024];
int read = 0;
try {
while ((read = in.read(buff)) > 0) {
out.write(buff, 0, read);
}
} finally {
in.close();
out.close();
}
}
謝謝你的答案複製!我怎麼能把mu xml放入/data/data/your.app/? – Padmelina
你必須複製它。我會用一個例子更新我的答案 – Blackbelt
我編輯了我的答案。根據您的要求更改它 – Blackbelt