Как получить доступ к папке активов в моем приложении для Android?
Я пишу в маленьком проекте для друга. Приложение для заметок. Мой план состоит в том, чтобы поместить карточки в формате xml, чтобы я мог легко импортировать и экспортировать их. Я разместил файлы xml в папке assets / xml / mynotecard.xml, но мне просто не удается получить доступ к этому файлу.
Всякий раз, когда я пытаюсь интерпретировать XML-файл (будет помещен в него позже в классе), я получаю исключение с: test.xml не является файлом. Это выдержка из моего кода:
открытый класс NotecardProActivity расширяет Activity {
<code>List<String> xmlFiles; public ArrayList<File> xmlFileList; XMLInterpreter horst; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final AssetManager mgr = getAssets(); displayFiles(mgr, "",0); xmlFiles = displayFiles(mgr, "xml",0); for (int e = 0; e<=xmlFiles.size()-1;e++) { Log.v("Inhalt List"+e+": ", xmlFiles.get(e)); } xmlFileList = new ArrayList<File>(); for (int i = 0; i<=xmlFiles.size()-1;i++) { xmlFileList.add(new File("./assets/xml/"+xmlFiles.get(i))); } for (int i = 0; i<=xmlFileList.size()-1;i++) { Log.v("Name: ", xmlFileList.get(i).getName()); Log.v("Filelocation: ",xmlFileList.get(i).getPath()); Log.v("Filelocation: ",xmlFileList.get(i).getAbsolutePath()); } Log.v("DEBUG","XML FILE LISTE erfolgreich geschrieben!"); //Alternative zum ausgelagerten XML INTERPRETER try { if(xmlFileList.get(0) == null){ Log.v("Debug", "XMLFILE IS NULL"); } else{ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlFileList.get(0)); doc.getDocumentElement().normalize(); Log.v("Root element :", doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("notecard"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; Log.v("GesetzesText: " , getTagValue("legal_text", eElement)); // System.out.println("Kommentar : " + getTagValue("comment", eElement)); } } } } catch (Exception e) { e.printStackTrace(); } mgr.close(); } private List<String> displayFiles (AssetManager mgr, String path, int level) { List<String> abc = new ArrayList<String>(); Log.v("Hello","enter displayFiles("+path+")"); try { String list[] = mgr.list(path); abc.addAll(Arrays.asList(list)); Log.v("Hello1","L"+level+": list:"+ Arrays.asList(list)); } catch (IOException e) { Log.v("Fail","List error: can't list" + path); } return abc; </code>
}
<code>private String getTagValue(String sTag, Element eElement) { NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes(); Node nValue = (Node) nlList.item(0); return nValue.getNodeValue(); } </code>
}
Было бы здорово, если бы вы, ребята, могли бы помочь мне :)