2013-07-03 42 views
0

我有一個json文件。所以,我解析了json文件,並將所有值存儲在ArrayList中。現在,我想分享應用程序中所有類的價值。那麼,建議和有效的方法是什麼呢?在Android應用程序中共享ArrayList <Custom>

+3

@YasirAdnan您是否閱讀過關聯問題的答案?它們適用於你的情況。 –

+0

我建議你看一下[Google的這些建議](http://developer.android.com/guide/faq/framework.html)。 –

+0

@YasirAdnan在目前的形式下,您的問題與已經回答的問題看起來很相似。通過它,如果你發現它不適合你的目的,再回來,並具體解釋。沒有必要鬱悶:) – NINCOMPOOP

回答

2

Singleton pattern。

只需爲您的List對象創建一個公共靜態引用,然後從應用的任何部分訪問它。只要您的應用程序處於活動狀態,它就會被訪問。並且您可以手動釋放它(通過將該引用歸零)。

public class SharedData { 
    public static List<Custom> jsonData; 
} 

,並從應用程序的任何部分:

SharedData.jsonData = new ArrayList<Custom>(); 

和讀取數據

Custom obj = SharedData.jsonData.get(0); 

Singleton wiki

+0

我用這個是我的主類public ArrayList data = new ArrayList ();但是當我在另一個類中使用這個activity.data.isempty()時。它返回true。但是,它在主類中顯示爲false。任何解決方案? – Adnan

+0

公共靜態? –

1

現在,我想所有的共享價值應用程序中的類。那麼,建議和有效的方法是什麼呢?

假設你錯過了一個介詞「與」在你上面的問題,並想用你的ArrayList中的所有其他類,以及,你可能會想要去一個全球性的ArrayList,這不過是在一個新類中聲明一個公共靜態Arraylist(我們稱之爲GlobalState.java)。

/** GLobalState.java **/ 
public class GlobalState { 
    public static ArrayList<E> jsonGlobalArrayList; 
} 

如果需要,您可以使用getters & setter。

現在,只要你在解析json文件後填入你的數組列表,你就可以將你的數組列表分配給這個全局數組列表。

GlobalState.jsonGlobalArrayList = jsonArrayList; 

這就是我如何處理json值的方式。希望這可以幫助。

P.S:對不起,我簡單化解決這個精心,如u當我提到對全球的ArrayList可能已經明白了這一點。 :)

0
public class Utilities { 

    public static boolean boolVar = false ; 
    public static int intVar= 0 ; 
    public static String str = "" ; 

    public static List<Object> aList= new ArrayList<Object>() ; 
    public static HashMap<String, Object> aMap= new HashMap<String, Object>() ; 

} 

使用類名稱,如使用它們;

Utilities.boolVar = boolValue; Utilities.intVar = intValue;

內部活動。

相關問題