2014-11-24 22 views
0

我想將活動中的對象傳遞給片段。我知道如何傳遞數據,但不知道我應該使用哪種bundle應該使用哪個束傳遞對象

更新

換句話說,我有mqttAndroidClient類型的對象和該對象我想通過bundle從我的活性傳遞給一個片段。我應該使用哪種捆綁類型?

+0

可能的重複[如何創建Serializable對象和傳遞給bundle.putSerializable(key,value)](http://stackoverflow.com/questions/27122149/how-to-create-serializable-object-and-pass-to-bundle-putserializablekey-value) – j0n0 2014-11-25 10:30:49

回答

0

你應該使用這樣的事情:

SerializableParcelable創建包含所需數據傳遞您的自定義類和extend,把你的對象作爲額外給你Bundle對象,並設置Bundle作爲參數傳遞給您的Fragment

Activity

... 
Fragment fragment = new YourFragment(); 
Bundle bundle = new Bundle(); 
bundle.putString("data", "yourData"); 
fragment.setArguments(bundle); 
... 

Fragment

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    String data = getArguments().getString("data");  
    ... 
} 
+0

謝謝,但我知道如何傳遞數據,但我不知道應該使用哪種類型的bundle傳遞一個對象 – rmaik 2014-11-24 21:33:33

+0

請參閱我的更新回答 – 2014-11-24 21:42:34

0

對於相對簡單的對象數據類型,你不應該需要捆綁的。當您在使用參數的片段中重寫onCreate()時,只需添加一行代碼以從意圖中獲取數據。

舉例來說,如果你傳遞一個整數,該行應爲:

intvar = (int)getActivity().getIntent().getInt(SOME_IDENTIFIER); 

其中SOME_IDENTIFIER是一個常數,是常見的活動和片段兩者。 (它看起來像「com.yourpackage.yourapp.some_identifier。」

+0

請參閱更新 – rmaik 2014-11-24 21:39:45

+0

如果您的課程只使用原始數據類型,則可以使用Parcel代替包。請參閱http://stackoverflow.com/questions/中的答案。 5621132 /傳球定製對象之間的活動 – 2014-11-24 21:45:22

相關問題