我想將活動中的對象傳遞給片段。我知道如何傳遞數據,但不知道我應該使用哪種bundle
?應該使用哪個束傳遞對象
更新
換句話說,我有mqttAndroidClient
類型的對象和該對象我想通過bundle
從我的活性傳遞給一個片段。我應該使用哪種捆綁類型?
我想將活動中的對象傳遞給片段。我知道如何傳遞數據,但不知道我應該使用哪種bundle
?應該使用哪個束傳遞對象
更新
換句話說,我有mqttAndroidClient
類型的對象和該對象我想通過bundle
從我的活性傳遞給一個片段。我應該使用哪種捆綁類型?
你應該使用這樣的事情:
從Serializable
或Parcelable
創建包含所需數據傳遞您的自定義類和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");
...
}
謝謝,但我知道如何傳遞數據,但我不知道應該使用哪種類型的bundle傳遞一個對象 – rmaik 2014-11-24 21:33:33
請參閱我的更新回答 – 2014-11-24 21:42:34
對於相對簡單的對象數據類型,你不應該需要捆綁的。當您在使用參數的片段中重寫onCreate()時,只需添加一行代碼以從意圖中獲取數據。
舉例來說,如果你傳遞一個整數,該行應爲:
intvar = (int)getActivity().getIntent().getInt(SOME_IDENTIFIER);
其中SOME_IDENTIFIER是一個常數,是常見的活動和片段兩者。 (它看起來像「com.yourpackage.yourapp.some_identifier。」
請參閱更新 – rmaik 2014-11-24 21:39:45
如果您的課程只使用原始數據類型,則可以使用Parcel代替包。請參閱http://stackoverflow.com/questions/中的答案。 5621132 /傳球定製對象之間的活動 – 2014-11-24 21:45:22
可能的重複[如何創建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