在android應用程序中保存對象列表的最簡單或最簡單的方法是什麼?在Android應用程序中保存LinkedList的簡單方法?
我需要保存它,然後在應用程序再次啓動時加載它。
會不錯,也許有人有一個準備好使用庫,它使我的一切。
在android應用程序中保存對象列表的最簡單或最簡單的方法是什麼?在Android應用程序中保存LinkedList的簡單方法?
我需要保存它,然後在應用程序再次啓動時加載它。
會不錯,也許有人有一個準備好使用庫,它使我的一切。
讓您的物品存儲在LinkedList
實施Parcelable
,所以你可以把它們放在你的bundle
。中onSaveInstance
您可以用把你的對象在bundle
:
bundle.putParcelableArrayList ("key", list);
,並在onRestoreInstanceState
你Activity
獲取數據從bundle
回用:
bundle.getParcelableArrayList();
我通常不提供完整的答案,但因爲它是在我的剪貼板...
這應該與任何列表實施工作。
此外,您需要定義/交換Constants.EXTERNAL_CACHE_DIR
,並可能想使用UI-Thread以外的其他方式進行生產。
public static void persistList(final List<String> listToPersist, final String fileName) {
FileWriter writer = null;
BufferedWriter bufferedWriter = null;
File outFile = new File(Constants.EXTERNAL_CACHE_DIR, fileName);
try {
if (outFile.createNewFile()) {
writer = new FileWriter(outFile);
bufferedWriter = new BufferedWriter(writer);
for (String item : listToPersist) {
bufferedWriter.write(item + "\n");
}
bufferedWriter.close();
writer.close();
}
} catch (IOException ioe) {
Log.w(TAG, "Exception while writing to file", ioe);
}
}
public static List<String> readList(final String fileName) {
List<String> readList = new ArrayList<String>();
try {
FileReader reader = new FileReader(new File(Constants.EXTERNAL_CACHE_DIR, fileName));
BufferedReader bufferedReader = new BufferedReader(reader);
String current = null;
while ((current = bufferedReader.readLine()) != null) {
readList.add(current);
}
} catch (FileNotFoundException e) {
Log.w(TAG, "Didn't find file", e);
} catch (IOException e) {
Log.w(TAG, "Error while reading file", e);
}
return readList;
}
爲什麼要使用一個文件來延續簡單的數組?它可以更容易地存儲在SharedPreferences中。 –
由於Parcelable相當詳細,必須爲您想要堅持的每個類實施。 – keyboardsurfer
是的。但保留對象更容易。在這種情況下,你正在持久化字符串。你會如何採取這種方法,並堅持更復雜的對象? –