我想将一个对象从一个活动传递给一个片段。我知道如何传递数据,但不知道我应该使用哪种类型的bundle
?
更新
换句话说,我有一个mqttAndroidClient
类型的对象,我希望通过bundle
将我的活动传递给片段。我应该使用哪种捆绑类型?
答案 0 :(得分:0)
你应该使用这样的东西:
制作包含所需数据的自定义类,并extend
或Serializable
Parcelable
并将您的对象作为额外内容添加到Bundle
对象并设置{ {1}}作为Bundle
的参数。
在Fragment
Activity
在...
Fragment fragment = new YourFragment();
Bundle bundle = new Bundle();
bundle.putString("data", "yourData");
fragment.setArguments(bundle);
...
Fragment
答案 1 :(得分:0)
对于相对简单的对象数据类型,您根本不需要捆绑。当您在使用该参数的片段中覆盖onCreate()时,只需添加一行代码即可从意图中获取数据。
例如,如果您传递一个整数,那么该行将是:
intvar = (int)getActivity().getIntent().getInt(SOME_IDENTIFIER);
其中SOME_IDENTIFIER是活动和片段共有的常量。 (它看起来像" com.yourpackage.yourapp.some_identifier。"