1
我想將自定義模型表單片段傳遞給另一個片段。我的模型是:傳遞具有使用可序列化的其他對象的對象.giving錯誤
public class AddressBookModel implements Serializable {
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getPincode() {
return pincode;
}
public void setPincode(String pincode) {
this.pincode = pincode;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getReion() {
return reion;
}
public void setReion(String reion) {
this.reion = reion;
}
public String getLandlineNo() {
return landlineNo;
}
public void setLandlineNo(String landlineNo) {
this.landlineNo = landlineNo;
}
public String getMobileno() {
return mobileno;
}
public void setMobileno(String mobileno) {
this.mobileno = mobileno;
}
public String getPrifix() {
return prifix;
}
public void setPrifix(String prifix) {
this.prifix = prifix;
}
String firstname;
String lastname;
String country;
String street;
String pincode;
String city;
String reion;
String landlineNo;
String mobileno;
String prifix;
}
和另一個模型類是
public class OrderDataModel implements Serializable{
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public ArrayList<ProductBuyDataModel> getbuyProductDetail() {
return buyProductDetail;
}
public void setbuyProductDetail(ArrayList<ProductBuyDataModel> productBuyDataModelsArraylist) {
this.buyProductDetail = productBuyDataModelsArraylist;
}
String phoneno;
public String getPhoneno() {
return phoneno;
}
public void setPhoneno(String phoneno) {
this.phoneno = phoneno;
}
String userId,emailAddress;
ArrayList<ProductBuyDataModel> buyProductDetail;
public AddressBookModel getShipAddDetail() {
return shipAddDetail;
}
public void setShipAddDetail(AddressBookModel shipAddDetail) {
this.shipAddDetail = shipAddDetail;
}
public AddressBookModel getBillAddDetail() {
return billAddDetail;
}
public void setBillAddDetail(AddressBookModel billAddDetail) {
this.billAddDetail = billAddDetail;
}
AddressBookModel shipAddDetail,billAddDetail;
}
它成功地將數據傳輸到片段,但它之後,它顯示錯誤
RuntimeException: Parcelable encountered IOException writing serializable object (name = com.example.laxmikantbolya.shreenamokar.Model.OrderDataModel)
我不知道爲什麼發送數據後發生錯誤。我使用OrderDataModel 來傳遞數據。它包含另一個模型類作爲變量。 簡單的單一模型很容易,我可以發送。但我有問題要傳遞包含另一個對象的對象 。
我不是沒有爲什麼「Parcelable遇到IOException」即使我不使用parcealble任何地方在我的模型列表中。
logcat的輸出
09-07 06:16:56.620 18732-18732/com.example.laxmikantbolya.shreenamokar E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.laxmikantbolya.shreenamokar, PID: 18732
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.example.laxmikantbolya.shreenamokar.Model.OrderDataModel)
at android.os.Parcel.writeSerializable(Parcel.java:1388)
at android.os.Parcel.writeValue(Parcel.java:1335)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:638)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)
at android.os.Bundle.writeToParcel(Bundle.java:1096)
at android.os.Parcel.writeBundle(Parcel.java:663)
at android.app.FragmentState.writeToParcel(Fragment.java:138)
at android.os.Parcel.writeTypedArray(Parcel.java:1191)
at android.app.FragmentManagerState.writeToParcel(FragmentManager.java:376)
at android.os.Parcel.writeParcelable(Parcel.java:1357)
at android.os.Parcel.writeValue(Parcel.java:1262)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:638)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)
at android.os.Bundle.writeToParcel(Bundle.java:1096)
at android.os.Parcel.writeBundle(Parcel.java:663)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2884)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3261)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.io.NotSerializableException: com.example.laxmikantbolya.shreenamokar.Model.ProductBuyDataModel
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at java.util.ArrayList.writeObject(ArrayList.java:648)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1033)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at android.os.Parcel.writeSerializable(Parcel.java:1383)
at android.os.Parcel.writeValue(Parcel.java:1335)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:638)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)
at android.os.Bundle.writeToParcel(Bundle.java:1096)
at android.os.Parcel.writeBundle(Parcel.java:663)
at android.app.FragmentState.writeToParcel(Fragment.java:138)
at android.os.Parcel.writeTypedArray(Parcel.java:1191)
at android.app.FragmentManagerState.writeToParcel(FragmentManager.java:376)
at android.os.Parcel.writeParcelable(Parcel.java:1357)
at android.os.Parcel.writeValue(Parcel.java:1262)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:638)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)
at android.os.Bundle.writeToParcel(Bundle.java:1096)
at android.os.Parcel.writeBundle(Parcel.java:663)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2884)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3261)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
程序是
for (int i =0;i<buynowModelList.size();i++){
ProductBuyDataModel productBuyDataModel = new ProductBuyDataModel();
productBuyDataModel.setPrductId(String.valueOf(buynowModelList.get(i).getProductId()));
productBuyDataModel.setQuantity(String.valueOf(buynowModelList.get(i).getQuantity()));
productBuyDataModelArrayList.add(productBuyDataModel);
}
HashMap<String,String> hashMaploginDetail =sessionManager.getUserDetails();
orderDataModel.setbuyProductDetail(productBuyDataModelArrayList);
orderDataModel.setUserId(hashMaploginDetail.get(SessionManager.KEY_UserIdLOGin));
orderDataModel.setEmailAddress(hashMaploginDetail.get(SessionManager.KEY_EmailLOGin));
orderDataModel.setPhoneno(hashMaploginDetail.get(SessionManager.KEY_PhoneNO));
bundle.putSerializable("buyNowData",orderDataModel);
PlaceOrderAddFragment placeOrderAddFragment =new PlaceOrderAddFragment();
placeOrderAddFragment.setArguments(bundle);
mActivity.getFragmentManager().beginTransaction().replace(R.id.buynow_frame,placeOrderAddFragment,TAG).addToBackStack(null).commit();
或得到它作爲
if (bundle.getSerializable("buyNowData")!=null){
orderDataModel = (OrderDataModel) bundle.getSerializable("buyNowData");
}
我recive完滿成功的數據。但在此之後,它顯示我錯誤和應用程序崩潰。
我儘可能的谷歌,但我發現只有簡單的模式通過。他們對我沒有幫助 請給我任何可以幫助我的鏈接。
把意圖,你通過這個類 –
我必須通過形式片段片段在同一個actvity。 – laxmikant
將該代碼放在這裏 –