我正在開發一個基於列表和地圖的Android應用程序。活動和片段之間共享數據
當加載列表中,我從一個web服務中獲取數據,那就是我要去使用在地圖添加標記相同的數據。
我該如何避免再次加載數據?
謝謝。
編輯:我忘了說,我使用的ABS標籤控件與兩個片段,一個用於列表和其他的地圖。我想將數據保存在製表控件活動中並與碎片共享。
有沒有辦法從片段內的父活動獲取數據? 而對於大量的數據,最好是寫內容到sql?
我正在開發一個基於列表和地圖的Android應用程序。活動和片段之間共享數據
當加載列表中,我從一個web服務中獲取數據,那就是我要去使用在地圖添加標記相同的數據。
我該如何避免再次加載數據?
謝謝。
編輯:我忘了說,我使用的ABS標籤控件與兩個片段,一個用於列表和其他的地圖。我想將數據保存在製表控件活動中並與碎片共享。
有沒有辦法從片段內的父活動獲取數據? 而對於大量的數據,最好是寫內容到sql?
您可以將您的數據作爲意向額外和其他活動檢索:
Bundle extras = getIntent().getExtras();
String data;
if (extras != null) {
data = extras.getString("key");
//use your data
}
如果你的數據是某種無法通過意向額外傳遞的一個對象,你可以創建一個Singleton它擴展了你的Application類。
首先關閉所有的模型類必須實現Serializable,這樣你們可以給整個模型到另一個活動與存儲數據。
然後在後活動第一
intent.putExtra( 「模型」,commanModelList);
然後在後第二次活動
commanModelList = (ArrayList<CommanModel>) getIntent().getSerializableExtra("model");
得到這個意圖使用烏爾commanModelList與存儲數據。
您可以添加特定類型(Integer,String ...)的ArrayList作爲intent extra(例如,Intent類中的public Intent putIntegerArrayListExtra (String name, ArrayList<Integer> value)
)。
如果這些不適合,你可以子類的應用程序類,並存儲在你的名單,與getter/setter方法。您的應用程序對象可以從所有使用getApplication()
的活動中獲得(然後您可以將其轉換爲您自己的應用程序子類型)。