Note that there are some explanatory texts on larger screens.

plurals
  1. POPassing Object between Activity contains NULL
    text
    copied!<p>I have 2 activity(Order and OrderReview) from which I am sending object from OrderActivity to OrderReviewActivity. The object is NULL when i retrieve it in the OrderReview activity.</p> <p><strong>Order Activity</strong></p> <pre><code>@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.send_menu: showOrderReview(); break; } return true; } private void showOrderReview() { // TODO Auto-generated method stub Intent i = new Intent(this, ReviewOrderActivity.class); i.putExtra("order",order); Collection&lt;Order.OrderProduct&gt; products = order.getProducts(); System.out.println("OrderActivity : " + products.size()); for (Order.OrderProduct product : products){ Log.d("---", "OrderActivity product.getQty() "+product.getQty()+" "+product.getProductId()); } startActivity(i); } </code></pre> <p><strong>OrderReviewActivity</strong></p> <pre><code>public class ReviewOrderActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.orderreview); Intent i = getIntent(); Order myOrderObject = (Order) i.getParcelableExtra("order"); Collection&lt;Order.OrderProduct&gt; products = myOrderObject.getProducts(); System.out.println("Orderrrrrrrrrrrr : " + products.size()); for (Order.OrderProduct product : products){ Log.d("---", " product.getQty() "+product.getQty()+" "+product.getProductId()); } } } </code></pre> <p><strong>Order.java</strong></p> <pre><code>public class Order implements Parcelable { public static class OrderProduct { private String productId; private String qty; public OrderProduct(String productId, String qty) { this.productId = productId; this.qty = qty; } public String getProductId() { return productId; } public String getQty() { return qty; } public void setQty(String qty) { this.qty = qty; } @Override public String toString() { return "productId: " + productId + " qty: " + qty; } } private String customerId; private Map&lt;String, OrderProduct&gt; products; private OrderProduct product; public Order(String customerId) { Log.v("TAG", "Order constr 1"); this.customerId = customerId; products = new HashMap&lt;String, OrderProduct&gt;(); } public Order(Parcel in) { Log.v("TAG", "ParcelData(Parcel source): time to put back parcel data"); String productId = in.readString(); String qty = in.readString(); Log.v("TAG", productId +" qty: "+qty); product = new OrderProduct(productId, qty); products = new HashMap&lt;String, OrderProduct&gt;(); } public void setProduct(String productId, String qty) { product = products.get(productId); if (product == null) { product = new OrderProduct(productId, qty); } else { product.setQty(qty); } products.put(productId, product); } public Collection&lt;OrderProduct&gt; getProducts() { return products.values(); } public String getCustomerId() { return customerId; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Order: customerId: " + customerId + " { "); for (OrderProduct product : products.values()) { sb.append(" { ").append(product.toString()).append(" } "); } sb.append(" } "); return sb.toString(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub System.out.println("INSIDE product.getProductId()" +product.getProductId()); dest.writeString(product.getProductId()); System.out.println("INSIDE product.getQty()" +product.getQty()); dest.writeString(product.getQty()); } public static final Order.Creator&lt;Order&gt; CREATOR = new Order.Creator&lt;Order&gt;() { public Order createFromParcel(Parcel in) { return new Order(in); } public Order[] newArray(int size) { return new Order[size]; } }; </code></pre> <p>}</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload