如何将ArrayList <customobject>从一个intent传递给另一个?</customobject>

时间:2013-03-04 18:11:32

标签: java android android-intent

我的意图是从网络服务中搜索数据。 我正试图将这些数据从这个意图传递到另一个屏幕(意图)

搜索意图

public void setXXX(ArrayList<XXX> xxxData) {
    this.xxxs= xxxData;
    if(xxxData.size() > 0)
    {
        Intent intent = new Intent(this, otherActivity.class);

        startActivity(intent);
    }else{
        alert (getResources().getString(R.string.no_result));
    }
}

接收者意图

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

            this.xxxs = (...);      

    setContentView(R.layout.activity_xxxlist);
    this.xxxList = (ListView) findViewById(R.id.listview);

    this.listView.setAdapter(new xxxDataAdapter(this,this.layoutInflator, this.xxxs));
}

我如何使用我的arrayList&lt;&gt;从第二个意图?

1 个答案:

答案 0 :(得分:2)

为了能够通过Intents发送对象,您必须为该对象实现Parcelable接口。它使用CREATOR来编写该对象的字符串和原始类型。

Here is the developer page for it

完成后,您可以在ArrayList中发送该对象,如下所示:

intent.putParcelableArrayListExtra(ArrayList<Parcelable> ... );

请参阅此方法:putParcelableArrayListExtra

在接收活动中,您可以致电:

getIntent().getParcelableArrayListExtra( String key );

As defined in the API here