将一个arraylist发送回父活动

Muh*_*mar 5 java android

我试图将一个arraylist传递给我的父母活动

这是简单的代码.

private ArrayList<Receipt> receipts = new ArrayList<Receipt>();


 Intent data = new Intent();
 data. // what to do here?
setResult(RESULT_OK, data); 

//************************************
Run Code Online (Sandbox Code Playgroud)

这是基本收据类

public class Receipt {


    public String referenceNo;
    public byte[]   image;
    public String comments;
    public Date   createdOn;
    public Date   updatedOn;
Run Code Online (Sandbox Code Playgroud)

告诉我如何在我的意图中添加它以及如何在父活动中将其检索回来

onActivityResult(final int requestCode, int resultCode, final Intent data)
Run Code Online (Sandbox Code Playgroud)

Jav*_*ave 3

您可以使用data.putExtra()/bundle.putSerializable()将自定义对象放入 Bundle/Intent 中,但是,您必须使您的类 Receipt 实现Serializable(只需放在implements Serializable类名后面,这就是这样一个简单的类的全部内容。然后将其读回您)使用getSerializable()

注意:我不认为Date-class 是可序列化的,您可能想要替换那些具有以毫秒为单位的长表示时间的类(您可以使用Date.getTime()它)。

例子:

public class Receipt implements Serializable{
    public String referenceNo;
    public byte[]   image;
    public String comments;
    public long   createdOn;
    public long   updatedOn;
    //...
}

//Put the list in the intent
List<Receipt> list = ...
Intent data = new Intent();
data.putExtra("tag", list);

//Read the list from the intent:
list = (List<Receipt>) data.getSerializableExtra("tag");
Run Code Online (Sandbox Code Playgroud)