2014-11-05 25 views
0

我需要一些數據管理方面的幫助。希望我能夠很好地解釋這一點。我在A類中創建並實例化了一個ArrayList,但是我想在B類中顯示數據。這比這個稍微複雜一點,讓我解釋一下我的步驟。在另一個類中引用ArrayList? Java/Android

我創建了一些setter和getter在A類

public static void setArray(ArrayList<String> list) { 
    ClassA.mList = list; 
} 

public static ArrayList<String> getArray() { 
    return mList; 
} 

儘管在A類,我填充我陣列一項,mList.add(「項目」)。現在,我在我的名單(mList)有一個項目,我開始一個新的活動

Intent intent = new Intent(ClassA.this, ClassB.class); 
startActivity(intent); 

我故意沒完成()這個活動。現在我在Class B中,通過使用getter方法打印數組中的第一項,我測試數據是否持續。

System.out.println("Data persists? " + ClassA.getArray().get(0)); 

一切工作正常到這一點。但是現在我完成了()B類,它將我帶回到A類。我在onResume()中爲A類添加了另一個項目到我的列表(mList),然後再次啓動第二個活動(B類)。然後,我使用遞歸來檢查我的數組列表中是否有兩個項目,並且只有1.我還在onResume中檢查了是否可以打印出任何內容,並且mList的大小爲0.我的猜測是它重新實例化了,並重置列表?

如何在離開活動並返回之後維護ArrayList中的數據?我希望能夠到/更新數據每次我返回到A級的時間

預先感謝您

回答

2

添加到ArrayList中你不應該使用靜態方法來共享活動之間的非靜態數據。爲此目的,請使用您作爲臨時數據存儲傳遞的意圖。例如你提供的你可以參考putStringArrayListExtra()

+0

讓我試試這個。感謝您的建議! – portfoliobuilder 2014-11-05 02:33:10

相關問題