2016-08-20 48 views
0

我正在開發Android項目。 Delivery.java是交付清單,我想單擊選定的交付並重定向到DeliveryDetails.java,顯示交付的詳細信息。無法傳遞object,putExtra(),無法轉換爲android.os.Serializable

但我得到這個:

error: FATAL EXCEPTION: main

而且我的應用程序停止/崩潰時,我重定向到DeliveryDetails.java。

這裏是我的代碼:

Delivery.java(將數據發送到DeliveryDetails.java)

private ArrayList<Delivery> deliveryList; 
private ListView lvDelivery; 

lvDelivery.setOnItemClickListener(this); 

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
    Delivery selectedDelivery = deliveryList.get(i); 
      Intent in = new Intent(ListActivity.this, DetailActivity.class); 
    in.putExtra("delivery", (Serializable) selectedDelivery); 
    startActivity(in); 
} 

DeliveryDetails.java(讀/收到了來自Delivery.java數據)

Delivery delivery = (Delivery) getIntent.getSerializableExtra("product"); 

錯誤:

FATAL EXCEPTION: main 
Process: com.example.myproject.delivery, PID: 22095 
java.lang.ClassCastException: com.example.myproject.delivery.Delivery cannot be cast to android.os.Serializable 
+3

'Delivery'是否實現'Serializable'接口? – Jens

回答

0

你必須使交貨序列化,這樣你就可以從一個活動傳遞你的對象到另一個活動。

但我會建議你,而不是使用序列化,使用Parcelable接口。下面是例子,如何使一個類parcelabe並通過從一個活動對象到另一個click here ...

這裏是Parcelabe序列化Difference之間差異

相關問題