您好我正在使用Android应用程序,当用户从应用程序进程终止应用程序时,我需要存储LinkedList。我看过这个问题easy way to save a LinkedList in a Android Application?
接受的答案似乎没有用,AndroidStudio抱怨它和Array List而不是链表。我意识到这个问题已经有3年了,在那个时候必须改变一些东西,因为它不起作用。
链接列表是否可以存储在Bundle中?或者有没有人有更好的方法来制作我的LinkedList Persistant?
干杯
答案 0 :(得分:0)
正如我在评论中提到的,您无法将LinkedList
保存到捆绑包中,但是您可以将LinkedList
转换为ArrayList
保存它,然后再次将其转换回您的应用程序时将其转换回来。 ArrayList
和LinkedList
的构造函数接受Collection
并按照迭代器返回它们的顺序添加元素(即LinkedList的FIFO)
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
ArrayList<MyObject> listToSave = new ArrayList<MyObject>(myLinkedList);
outState.putParcelableArrayList("key", listToSave);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
ArrayList<MyObject> loadedList = savedInstanceState.getParcelableArrayList("key");
myLinkedList = new LinkedList<MyObject>(loadedList);
}
}