2013-03-10 74 views
1

有一種方法,以一個ArrayList <ArrayList<Integer>> floors傳遞給通過捆綁另一個活動?捆綁的ArrayList <ArrayList的<Integer>>

感謝

+0

抱歉,我沒有正確看過問題。在更新上工作。 – Sajmon 2013-03-10 16:50:03

+0

http://stackoverflow.com/questions/5374546/passing-arraylist-through-intent – Raghunandan 2013-03-10 16:51:07

回答

6

Is there a way to pass an ArrayList > floors to another activity through Bundle?

偏偏不。

如果您將有ArrayList沒有嵌套它將與putIntegerArrayList(key, value)getIntegerArrayList(key)一起使用。

但可以肯定的是另一種方法(ES)。我將解釋一個可能的方式。

您可以創建類,將實現Serializable接口,並在這個類只創建領域和適當的獲取。我會給你一個基本的例子。然後你將通過活動傳遞Serializable。

public class DataHelper implements Serializable { 

    private ArrayList<ArrayList<Integer>> floors; 

    public DataHelper(ArrayList<ArrayList<Integer>> floors) { 
     this.floors = floors; 
    } 

    public ArrayList<ArrayList<Integer>> getList() { 
     return this.floors; 
    } 
} 

保存它包:

Bundle b = new Bundle(); 
b.putSerializable("floors", new DataHelper(floors)); 

和檢索目標的活動:

getIntent().getExtras().getSerializable("floors"); 
+0

它給出了以下錯誤: Bundle類型中的putIntegerArrayList(String,ArrayList )方法不適用於參數(String ,ArrayList的>) 的ArrayList >而不是一個ArrayList Ang3lo 2013-03-10 16:48:01

+0

答案更新。 – Sajmon 2013-03-10 17:01:12

+0

@sajmon_d:但我認爲有可能發送嵌套ArrayList – 2013-03-10 17:01:38

1

要從第一活動傳遞數組列表到第二活性。

Intent intent = new Intent(context, SecondActity.class); 
intent.putIntegerArrayListExtra("arraylist",integerList); //integerList is ArrayList<Integer> 
startActivity(intent); 

在第二個Activity中獲取arrayList。

ArrayList arrayList<Integer> = getIntent().getIntegerArrayListExtra("arraylist") 

閱讀here

如果你想通過活動之間的自定義對象,然後閱讀本thread

+2

它不會工作。他與嵌套的ArrayList ArrayList的: - – Sajmon 2013-03-10 16:54:32

+0

您好,感謝但它提供了以下錯誤: 在類型意圖的方法putIntegerArrayListExtra(字符串,ArrayList的)是不適用的參數(字符串,ArrayList的>) 這是另一個數組內的數組 – Ang3lo 2013-03-10 16:55:31

+0

@sajmon_d我已經更新了答案並給出了鏈接,我們如何在活動之間傳遞自定義對象.. – 2013-03-10 17:10:08

相關問題