2012-01-20 20 views
0

我正在開發一個Android應用程序。因爲我是Android平臺的新手,所以我有點困惑於我們如何操縱UI外觀&感覺何時有一些複雜性。從Android的當前活動中填充下一個活動的UI

我的問題是在一個按鈕上點擊生成一個ArrayList< Some Object >,我想通過迭代這個ArrayList來填充下一個活動的UI。將這個arrayList傳遞給下一個活動是不可能的,因爲它不被支持,所以只支持ArrayList<String>。在這個階段,只有我可以考慮從當前活動的按鈕單擊方法iteself創建下一個活動UI。我想這很多..但沒有得到解決這個問題的想法。

所以任何人都可以提出一個很好的方法來解決我的問題。

在此先感謝。

回答

1

您可以使用各種解決方案來解決你的問題:

#1發送陣列Parcelable對象從活動1通過你的包,以活性2

要使用此解決方案,你必須實現Parcelable to your class「SomeObject」

#2獨立存儲您的值從活動1成數據庫或成SharedPreferencies,一旦你在活性2 =>更多信息here

#3使用辛格爾頓所以你可以從任何地方

訪問您的數據檢索這些值
public class MySingleton { 
    private static MySingleton _instance; 
    private ArrayList<SomeObject> myList; 

    private MySingleton() { 
     myList = new ArrayList<SomeObject>(); 
    } 

    public static synchronized MySingleton getInstance() { 
     if (_instance==null) { 
      _instance = new MySingleton(); 
     } 
     return _instance; 
    } 

    public ArrayList<SomeObject> getMyList(){ 
     return myList; 
    } 

} 

所以從你的activity2中,你可以檢索你的ArrayList如下MySingleton.getInstance().getMyList();

+0

+1很好的解釋! – Venky

0

你可以讓你的「一些對象」Parcelable,然後把ArrayList<Parcelable>在你的意圖。

+0

可以ü認罪給我一個關於創建一個Parcelable對象的簡單想法。我沒有得到有關..dat爲什麼的想法。 –

+0

Parcelable只是一個接口(我爲你鏈接了文檔)。因此,無論您將什麼對象放入您的ArrayList中,我都假定它是您編寫的自定義類,使其實現Parcelable,它本質上允許您編寫和讀取重建對象所需的所有實例變量。如果你的對象太複雜,那麼你應該考慮使用SQLite來代替(即先前的活動將對象加載到數據庫中,將ID與意圖一起傳遞,然後下一個活動使用ID從數據庫中讀取對象)。 – gianpi

0

使用static訪問說明符做一個ArrayList<Some Object>

相關問題