Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过Intent传递包含arraylist的对象_Java_Android_Android Intent_Parcelable - Fatal编程技术网

Java 通过Intent传递包含arraylist的对象

Java 通过Intent传递包含arraylist的对象,java,android,android-intent,parcelable,Java,Android,Android Intent,Parcelable,我希望Activity2通过Intent接收对象(此对象中包含其他对象的ArrayList)。 要传输的对象: public class Card implements Parcelable { @SerializedName("product_name") private String productName; private String description; private List<Price> prices; public C

我希望Activity2通过Intent接收对象(此对象中包含其他对象的ArrayList)。 要传输的对象:

public class Card implements Parcelable {

    @SerializedName("product_name")
    private String productName;
    private String description;
    private List<Price> prices;

    public Card() {
    }

    public Card(String productName, String description, List<Price> prices) {
        this.productName = productName;
        this.description = description;
        this.prices = prices;
    }

    protected Card(Parcel in) {
        productName = in.readString();
        description = in.readString();
    }


    public static final Creator<Card> CREATOR = new Creator<Card>() {
        @Override
        public Bundle createFromParcel(Parcel in) {
            return new Card(in);
        }

        @Override
        public Card[] newArray(int size) {
            return new Card[size];
        }
    };

    public String getProductName() {
        return productName;
    }

    public String getDescription() {
        return description;
    }

    public List<Price> getPrices() {
        return prices;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(productName);
        dest.writeString(description);
        dest.writeTypedList(prices);
    } }
Activity2接收对象:

Intent intent = getIntent();
        if (intent != null) {
            bundle = intent.getParcelableExtra(ARG_BUNDLE);
        }
但是Activity2只接收对象卡片,里面没有价格的ArrayList(对象价格也实现了可包裹)。也许我做错了什么

Intent i = getIntent();  
stock_list = i.getStringArrayListExtra("stock_list");
发送端

 Intent intent = new Intent(this, editList.class);
        intent.putStringArrayListExtra("stock_list", stock_list);
        startActivity(intent);

您没有在方法中读取price arraylist。它应该是:

protected Card(Parcel in) {
        productName = in.readString();
        description = in.readString();
        prices= in.createTypedArrayList(Price.CREATOR); // add this line to your code.
    }
protected Card(Parcel in) {
        productName = in.readString();
        description = in.readString();
        prices= in.createTypedArrayList(Price.CREATOR); // add this line to your code.
    }