Android 传递单个变量与将bundle传递给newInstance
对于向片段传递参数,我认为最佳做法是使用newInstance()方法:Android 传递单个变量与将bundle传递给newInstance,android,constructor,fragment,bundle,Android,Constructor,Fragment,Bundle,对于向片段传递参数,我认为最佳做法是使用newInstance()方法: public static MyFragment newInstance(int myInt) { MyFragment myFragment = new MyFragment(); Bundle args = new Bundle(); args.putInt("myInt", myInt); myFragment.setArguments(args); return myFr
public static MyFragment newInstance(int myInt) {
MyFragment myFragment = new MyFragment();
Bundle args = new Bundle();
args.putInt("myInt", myInt);
myFragment.setArguments(args);
return myFragment;
}
int myInt = 123;
MyFragment myFragment = MyFragment.newInstance(myInt);
这将被实例化为:
public static MyFragment newInstance(int myInt) {
MyFragment myFragment = new MyFragment();
Bundle args = new Bundle();
args.putInt("myInt", myInt);
myFragment.setArguments(args);
return myFragment;
}
int myInt = 123;
MyFragment myFragment = MyFragment.newInstance(myInt);
如果我需要传递更多的变量,那么我必须向newInstance()方法中添加任何内容。例如,如果我同时传递一个字符串,那么我的newInstance()方法将如下所示:
public static MyFragment newInstance(int myInt, String myStr) {
// code to put the int AND the string into the bundle
}
现在我的问题是:上面的方法和下面的方法有什么区别,它们传递包
public static MyFragment newInstance(Bundle args) {
MyFragment myFragment = new MyFragment();
myFragment.setArguments(args);
return myFragment;
}
具体化为:
int myInt = 123;
Bundle args = new Bundle();
args.putInt("myInt", myInt);
MyFragment myFragment = MyFragment.newInstance(args);
我一直在使用后一种方法,因此可以缩短newInstance()的参数。我从未见过使用后一种方法的示例,我想知道它是否有问题。一个包可以包含多个值 您的第一个代码只能向片段发送一个整数值,使用一个bundle,您可以在一次调用中发送所有需要的内容 这就是主要的区别
希望这有帮助。一个包可以包含多个值 您的第一个代码只能向片段发送一个整数值,使用一个bundle,您可以在一次调用中发送所有需要的内容 这就是主要的区别
希望这有帮助。一个包可以包含多个值 您的第一个代码只能向片段发送一个整数值,使用一个bundle,您可以在一次调用中发送所有需要的内容 这就是主要的区别
希望这有帮助。一个包可以包含多个值 您的第一个代码只能向片段发送一个整数值,使用一个bundle,您可以在一次调用中发送所有需要的内容 这就是主要的区别 希望这有帮助