2014-10-07 74 views
2
Intent mIntent = new Intent(Login.this, PlatformActivity.class); 
       Bundle bundle = new Bundle(); 
       bundle.putSerializable("user",user); 
       mIntent.putExtras(bundle); 
       startActivity(mIntent); 

public class User implements Serializable { 

    private List<UserAccount> userAccountList; 
    ... 
    ... 
} 

的RuntimeException:Parcelable遇到IOException異常寫入序列化對象(名稱= com.orbis.mobile.User)的Android如何對象的用戶從一個活動傳遞到片段

用戶是不是序列化的,我想知道如何用arrayList傳遞Object。如果用戶沒有設置userAccountList,它可以工作。

回答

1
  ArrayList<UserAccount> userAccountList = user.getUserAccountList(); 
      user.setUserAccountList(null); 

      bundle.putSerializable("user", user); 

      bundle.putSerializable("accountList", userAccountList); 

      mIntent.putExtras(bundle); 
      startActivity(mIntent); 


    user = (User) getIntent().getSerializableExtra("user"); 

    ArrayList<UserAccount> accountNumberList = (ArrayList<UserAccount>) getIntent().getSerializableExtra("accountList"); 

    user.setUserAccountList(accountNumberList); 
0

List不是Serializable接口,需要使用像ArrayList

實現見 http://docs.oracle.com/javase/7/docs/api/java/util/List.html

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

public class User implements Serializable { 

    private ArrayList<UserAccount> userAccountList; 
    ... 
    ... 
} 

而且UserAccount需要implements Serializable

+0

List可以被序列化,UserAccount對象拋出異常。 http://stackoverflow.com/a/1387966/2402866 – 2014-10-07 21:54:20

+0

@AlonLevanon發佈你鏈接確認我說什麼。 'List'不是'serializable''ArrayList'。 – Blundell 2014-10-08 07:48:24

相關問題