2013-03-28 108 views
-3

我正在開發一個基於列表和地圖的Android應用程序。活動和片段之間共享數據

當加載列表中,我從一個web服務中獲取數據,那就是我要去使用在地圖添加標記相同的數據。

我該如何避免再次加載數據?

謝謝。

編輯:我忘了說,我使用的ABS標籤控件與兩個片段,一個用於列表和其他的地圖。我想將數據保存在製表控件活動中並與碎片共享。

有沒有辦法從片段內的父活動獲取數據? 而對於大量的數據,最好是寫內容到sql?

回答

1

您可以將您的數據作爲意向額外和其他活動檢索:

Bundle extras = getIntent().getExtras(); 
String data; 

if (extras != null) { 
    data = extras.getString("key"); 
    //use your data 
} 

如果你的數據是某種無法通過意向額外傳遞的一個對象,你可以創建一個Singleton它擴展了你的Application類。

0

首先關閉所有的模型類必須實現Serializable,這樣你們可以給整個模型到另一個活動與存儲數據。

然後在後活動第一

intent.putExtra( 「模型」,commanModelList);

然後在後第二次活動

commanModelList = (ArrayList<CommanModel>) getIntent().getSerializableExtra("model"); 

得到這個意圖使用烏爾commanModelList與存儲數據。

0

您可以添加特定類型(Integer,String ...)的ArrayList作爲intent extra(例如,Intent類中的public Intent putIntegerArrayListExtra (String name, ArrayList<Integer> value))。

如果這些不適合,你可以子類的應用程序類,並存儲在你的名單,與getter/setter方法。您的應用程序對象可以從所有使用getApplication()的活動中獲得(然後您可以將其轉換爲您自己的應用程序子類型)。