Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 如何将数据设置为片段(setarguments()vs setters方法)_Android_Android Fragments - Fatal编程技术网

Android 如何将数据设置为片段(setarguments()vs setters方法)

Android 如何将数据设置为片段(setarguments()vs setters方法),android,android-fragments,Android,Android Fragments,是否必须使用bundle和set参数设置数据? 这里怎么了 MyFragment frag = new MyFragment () frag.setData(mSchoolData); //add to back stack stuff. 通过使用setArgs()可以确保由于生命周期事件可以重新创建此片段……而通过使用自己的setter传递参数,它在某些情况下可能无法正常工作。这就是为什么绝对建议使用t Args或使用Intent extra的原因,如果片段被重新创建,系统将始终自动提供这

是否必须使用bundle和set参数设置数据? 这里怎么了

MyFragment frag = new MyFragment ()
frag.setData(mSchoolData);

//add to back stack stuff.

通过使用setArgs()可以确保由于生命周期事件可以重新创建此片段……而通过使用自己的setter传递参数,它在某些情况下可能无法正常工作。这就是为什么绝对建议使用t Args或使用Intent extra的原因,如果片段被重新创建,系统将始终自动提供这些参数。

您的意思是?是否要传递对象“mSchoolData”分段?这里的问题是,系统可以重新创建分段,而您的数据将丢失。如果变量声明为静态,数据会丢失吗?@sUndeep是的,这是一个对象如果我将变量声明为静态,会怎么样?这也行。但通常不建议这样做,虽然它可能非常适合某些特定的解决方案。我的问题出于好奇,我想补充一点,不鼓励使用静态变量,因为它们是全局的,如果您非常依赖静态变量,那么管理静态变量会变得非常糟糕。@Alécio Carvalho您的意思是有最佳实践。。但这不是错的,对吗?bcoz我只支持纵向定位,每次我从服务器上提供数据时,我都不会这样做,我只使用静态变量,就像在特殊情况下那样,所以我更喜欢其他解决方案,将它们作为最后手段并小心使用。例如,通过使用静态变量,您必须确保它将被正确地取消设置,否则可能导致意外的内存泄漏。