是否可以一次编写一个完整的shared_preferences.xml?
我想实现一种设置导入/导出,所以我需要读取和写入整个文件而不会丢失xml标签。
读取文件很简单,但是当我写入我的值(使用PrintWriter)时,存储在内存中的旧值会在几秒钟后覆盖它们。
如果不使用首选项编辑器编写单个值,我该怎么做才能防止这种情况。
答案 0 :(得分:1)
现在我从一个像Android自己的preferences.xml这样的文件中读取它,并在我自己的函数中连续写入它:
public static void preferencesImport(String PreferenceFilepath) {
preferencesImportPreferenceFilepath = PreferenceFilepath;
try {
// Parsing
// see http://theopentutorials.com/tutorials/android/xml/android-simple-xml-dom-parser/
XMLParserHelper parser = new XMLParserHelper(); // reference to described XMLDOMParser helper class
BufferedInputStream stream;
try {
stream = new BufferedInputStream(new FileInputStream(preferencesImportPreferenceFilepath));
org.w3c.dom.Document doc = parser.getDocument(stream);
// string value
NodeList nodeListString = doc.getElementsByTagName("string");
for (int i = 0; i < nodeListString.getLength(); i++) {
Element eString = (Element) nodeListString.item(i);
Pref.setString(eString.getAttribute("name"), eString.getTextContent()); // Own getter/setter -> use Android's preference manager instead in similar way
}
// repeat code above for boolean, long, int, float values
stream.close();
} catch (IOException e1) {
// output IOException
} catch (Throwable t1) {
// output Throwable1
}
writer.close();
} catch (Throwable t2) {
// output Throwable2
}
}