2012-04-22 257 views
3

我想實現一個片段佈局。我有一個活動,服務器作爲SplashScreen &從Web獲取一些數據並創建我的自定義對象的ArrayList。將活動傳遞給ListFragment?

通常如果我使用的是ListView,我只需要執行以下操作。

private ArrayList<Articles> articles; 

private void isComplete() { 
     Intent intent = new Intent(SplashScreen.this, ListActivity.class); 
     intent.putExtra("data", articles); 
     startActivity(intent); 
     finish(); 
    } 

如何將相同的數據傳遞給片段?我非常感謝你的幫助。

回答

3

其簡單採取全球一流 而declare public static ArrayList<Articles> articles = new ArrayList<Articles>; 在主要活動中Global.articles = articles; 現在你可以使用Project中的任何地方。

+0

感謝它的工作,但靜態變量佔用內存空間!任何其他方式可能? – Nischal 2015-09-09 05:54:07

+0

@Nischal是的,你可以參考http://stackoverflow.com/questions/14997855/pass-the-arraylist-with-particular-id-from-one-class-to-another-in-android – 2015-09-09 07:14:19

2

這取決於的數組列表

  • putIntegerArrayListExtra(字符串名稱,ArrayList的值)

  • putParcelableArrayListExtra(字符串名稱,ArrayList的值)

  • putStringArrayListExtra(字符串名稱,ArrayList中的類型值)

  • putCharSequenceArrayListExtra(String name ,ArrayList的值)

然後你就可以通過替換把與密鑰字符串作爲參數,得到你讀下一個活動,如

myIntent.getStringArrayListExtra("arrayPeople"); 
-2

使用putExtra傳遞價值的意圖。使用getSerializableExtra方法來檢索數據

如果我有兩個活動A和BI要傳遞的ArrayList>值到活動B,則我將使用以下代碼中類從活動A A

通行證的ArrayList>數據到活動乙

Intent intent = new Intent(this, B.class); 
HashMap<String, String> hm = new HashMap<String, String>(); 
hm.put("sunil", "sahoo"); 
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>(); 
arl.add(hm); 
intent.putExtra("arraylist", arl); 
startActivityForResult(intent, 500); 

檢索在活動B值

在B類,我將寫便接踵而來荷蘭國際集團代碼檢索數據

ArrayList<HashMap<String, String>> arl =(ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist"); 
System.out.println("...serialized data.."+arl); 
+0

問題是關於ListFragment。不是關於活動。 – Isuru 2015-07-14 10:53:29