我正在尝试将一组对象发送到一个新意图,但问题是我不知道如何一次发送整个数组。我设法使其工作的方法是在for循环中逐个对象地添加对象,在第二个活动中我必须逐个获取它们,如下所示:
主要活动:
Intent newIntent = new Intent(mainA.this, secondA.class);
for(int i=0;i<numberOfObjects;i++)
newIntent.putExtra("object"+i,myObjects[i]);
newIntent.putExtra("length", x);
startActivity(newIntent);
第二项活动:
Serializable n = getIntent().getSerializableExtra("length");
int x = Integer.parseInt(n.toString());
myObjects = new objClass[x];
for(int i=0;i<x;i++)
myObjects[i] = (objClass) getIntent().getSerializableExtra("object"+i);
即使这种方法有效,并且得到了正确的结果,是不是有更好/更快/更清洁的解决方案?(我搜索了很多,但是没有找到更好的方法,也许我没有& #39;不知道到底要找什么。)
答案 0 :(得分:1)
使您的对象可序列化并将所有对象放在Arraylist中并发送它.ArrayList本身实现了可序列化。
Intent newIntent = new Intent(mainA.this, secondA.class);
newIntent.putExtra("list",listOfObjets);
startActivity(newIntent);
第二项活动:
ArrayList<YourObjects> list = (ArrayList<YourObjects>)getIntent().getSerializableExtra("list");
答案 1 :(得分:0)
您好,您也可以尝试这个..创建setter getter类,它将设置并获取您的对象。接下来创建setter getter class的数组列表.next使用for循环中的set方法将所有对象添加到arraylist中。接下来使用setArguments将该arraylist对象添加到bundle中。 同样,您可以使用getArguments访问该捆绑包。