存储链接列表的简单方法

时间:2015-06-29 15:44:16

标签: android linked-list persistence

您好我正在使用Android应用程序,当用户从应用程序进程终止应用程序时,我需要存储LinkedList。我看过这个问题easy way to save a LinkedList in a Android Application?

接受的答案似乎没有用,AndroidStudio抱怨它和Array List而不是链表。我意识到这个问题已经有3年了,在那个时候必须改变一些东西,因为它不起作用。

链接列表是否可以存储在Bundle中?或者有没有人有更好的方法来制作我的LinkedList Persistant?

干杯

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,您无法将LinkedList保存到捆绑包中,但是您可以将LinkedList转换为ArrayList保存它,然后再次将其转换回您的应用程序时将其转换回来。 ArrayListLinkedList的构造函数接受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);
    }
}