2016-01-17 38 views
0

我希望經由一個Android意圖傳遞一個arbitary對象,我有以下代碼:傳遞任意物體中的Android意圖

在活動我希望從發送意圖:

Intent intent = new Intent(containerListActivity, com.uk.jacob.containerdroid.activities.ContainerDetailsActivity.class); 
intent.putExtra("container", containers.get(i)); 
containerListActivity.startActivity(intent); 

的活動我想收到的意圖:

System.out.println(getIntent().getExtras("container")); 

我似乎得到錯誤「無法解析方法putExtra

containers本質上是Jackson JSON映射的POJO。

+0

檢查這個帖子[在android中激活活動之間傳遞自定義對象](http://stackoverflow.com/a/33073711/2032561) – Bharatesh

+0

[在活動之間傳遞自定義對象?]的可能重複(http://stackoverflow.com/questions/5621132 /傳遞 - 定製對象之間的活動) – Bharatesh

回答

4

不幸的是,你不能在意圖中放置任意對象。它需要是ParcelableSerializable

http://developer.android.com/reference/android/content/Intent.html

你能做到幾個方面:

  1. 讓你的自定義類實現Serializable。這是很快的代碼,但可能不是高性能的。
  2. 讓您的自定義類實現Parcelable。這可能是一些工作。
  3. 將您的container轉換爲使用Jackson的字符串,然後在使用getStringExtra後將其轉換回。
+0

在Android它應該是可以Parcelable – sector11

1

將您的JSON序列化爲字符串,然後將其推送到意圖。在接收活動中,嘗試getStringExtra()以從意圖對象中提取它。

+0

這相當簡單的答案 – sector11