Android,如何将一个ArrayList <myobject>放入Intent?</myobject>

时间:2011-07-21 07:54:34

标签: android android-activity arraylist android-intent

我有两个活动,在第一个活动中,我实现了一个Object myObject的ArrayList。在第二项活动中,我需要得到这个Arraylist。我不知道如何用意图做到这一点?

(对象是我创建的一个类)

提前致谢。

4 个答案:

答案 0 :(得分:6)

如果你使用Object类实现Parcelabel,你可以将你的arraylist打包到你用意图发送的包中

请参阅this link以获取示例

答案 1 :(得分:1)

通常使用Bundle个对象在Activities之间传递信息,但这些只允许使用简单的类型对象。通常,为了传递更复杂的对象类型,通常必须构造某种静态上下文并在其上设置值,然后可用于第二个活动。感觉很脏,但我现在已经在我的应用程序中克服了它。

答案 2 :(得分:1)

您的班级myObject必须实施Parcelable。然后,您可以使用意图中的putParcelableArrayListExtra将其传递给下一个活动,并使用getParcelableArrayListExtra检索列表

答案 3 :(得分:0)

我这样用过。

<强>把

intent.putExtra("data", new DataWrapper(selectedTasks));
startActivity(intent);

获取:

DataWrapper dw = (DataWrapper) getIntent().getSerializableExtra("data");
ArrayList<SelectedTask> taskList = dw.getList();

Arraylist对象应该是Serializable

public class SelectedTask implements Serializable{

}

public class DataWrapper implements Serializable{
    private ArrayList<SelectedTask> slist;

       public DataWrapper(ArrayList<SelectedTask> data) {
          this.slist = data;
       }

       public ArrayList<SelectedTask> getList() {
          return this.slist;
       }
}