2013-03-10 76 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

相关问题