2017-09-18 181 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");