Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应该使用哪个包传递对象_Android_Bundle_Start Activity - Fatal编程技术网

Android 应该使用哪个包传递对象

Android 应该使用哪个包传递对象,android,bundle,start-activity,Android,Bundle,Start Activity,我想将一个对象从一个活动传递到一个片段。我知道如何传递数据,但不知道应该使用哪种类型的bundle 更新 换句话说,我有一个类型为mqttAndroidClient的对象,我想通过包将该对象从我的活动传递到片段。我应该使用哪种捆绑类型?您应该使用如下内容: 使包含要传递的所需数据的自定义类可从序列化或可打包扩展,并将对象作为附加对象放入Bundle对象,并将Bundle设置为片段的参数 在您的活动中 ... Fragment fragment = new YourFragment(); Bund

我想将一个对象从一个活动传递到一个片段。我知道如何传递数据,但不知道应该使用哪种类型的
bundle

更新


换句话说,我有一个类型为
mqttAndroidClient
的对象,我想通过
包将该对象从我的活动传递到片段。我应该使用哪种捆绑类型?

您应该使用如下内容:

使包含要传递的所需数据的自定义类可从
序列化
可打包
扩展
,并将对象作为附加对象放入
Bundle
对象,并将
Bundle
设置为
片段的参数

在您的
活动中

...
Fragment fragment = new YourFragment();
Bundle bundle = new Bundle();
bundle.putString("data", "yourData");
fragment.setArguments(bundle);
...
在您的
片段中

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

对于相对简单的对象数据类型,根本不需要捆绑包。当您在使用参数的片段中重写onCreate()时,只需添加一行代码即可从意图中获取数据

例如,如果要传递一个整数,则该行为:

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

其中,某个_标识符是活动和片段共用的常量。(它看起来像“com.yourpackage.yourapp.some_identifier”。

谢谢,但我知道如何传递数据,但我不知道应该使用哪种类型的包来传递对象。如果您的类只使用基本数据类型,则可以使用包来代替包。请参阅