2012-04-11 92 views

回答

108

意圖提供一堆超載putExtra()方法。

假設你有一個類Foo正確實現Parcelable,把它變成意圖在一個活動:

Intent intent = new Intent(getBaseContext(), NextActivity.class); 
Foo foo = new Foo(); 
intent.putExtra("foo ", foo); 
startActivity(intent); 

要意圖得到它的另一項活動:

Foo foo = getIntent().getExtras().getParcelable("foo"); 

希望這有助於。

2
Parcelable p[] =getIntent().getParcelableArrayExtra("parcel"); 
+0

我問關於getParcelable,爲什麼呢? – yital9 2012-04-11 14:08:03

+0

它會返回你傳過的對象數組 – MAC 2012-04-11 14:09:39

+0

對不起,你覺得getParcelableArrayExtra和getParcelable有什麼區別嗎? – yital9 2012-04-11 14:11:28

1

首先創建Parcelable使用Given Technique然後

public static CreditCardDetail newInstance(CreditCardItemBO creditCardItem) { 
     CreditCardDetail fragment = new CreditCardDetail(); 
     Bundle args = new Bundle(); 
     args.putParcelable(CREDIT_KEY,creditCardItem); 
     fragment.setArguments(args); 
     return fragment; 
    } 

而且越來越像

if(getArguments() != null) 
{ 
    creditCardItem = getArguments().getParcelable(CREDIT_KEY);    
} 

其中

public static final String CREDIT_KEY = "creditKey"; 
0

重要的是要記住,你的米odels必須實現Parcelable接口,以及靜態的CREATOR方法。這種情況是爲列表

private static final String MODEL_LIST = "MODEL_LIST"; 
    public MainFragment() {} 

    public static MainFragment newInstance(ArrayList<YourModel> 
models) { 
     MainFragment fragment = new MainFragment(); 
     Bundle args = new Bundle(); 
     args.putParcelableArrayList(MODEL_LIST,models); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (getArguments() != null) { 
      ArrayList<YourModel> models = getArguments().getParcelableArrayList(MODEL_LIST); 
     } 
    } 
相關問題