2017-09-18 248 views
0

我目前正在尝试将我的片段中的一些数据传递给一个活动。我传递了一些参数,也是一个模型类的数组列表。我已经确定在我传递它之前的数组列表不为空,因为我能够打印出日志中的值。但它在被调用的活动中变为空。Android getParcelableExtra返回null

下面是模型类:

public class Product implements Parcelable { 

String code, id, status, is_expired; 

public Product() {} 

public Product(String code, String id, String status, String is_expired) { 
    this.code = code; 
    this.id = id; 
    this.status = status; 
    this.is_expired = is_expired; 
} 

public Product(Parcel in) { 
    code = in.readString(); 
    id = in.readString(); 
    status = in.readString(); 
    is_expired = in.readString(); 
} 

public String getCode() { 
    return code; 
} 

public void setCode(String code) { 
    this.code = code; 
} 

public String getId() { 
    return id; 
} 

public void setId(String id) { 
    this.id = id; 
} 

public String getStatus() { 
    return status; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 

public String getIs_expired() { 
    return is_expired; 
} 

public void setIs_expired(String is_expired) { 
    this.is_expired = is_expired; 
} 

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

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeString(code); 
    dest.writeString(id); 
    dest.writeString(status); 
    dest.writeString(is_expired); 
} 

public static final Parcelable.Creator<Product> CREATOR = new Parcelable.Creator<Product>() { 
    public Product createFromParcel(Parcel in) { 
     return new Product(in); 
    } 

    public Product[] newArray(int size) { 
     return new Product[size]; 
    } 
}; 
} 

这里是主叫方:

intent.putExtra("product", productList); 

下面是如何检索数据:

ArrayList<Product> productList = getIntent().getParcelableExtra("product"); 

什么我错在这里做什么?

回答

3

试试这个。

intent.putParcelableArrayListExtra("product", productList); 

和下一个活动。

ArrayList<Product> productList = getIntent().getParcelableArrayListExtra("product");