Android 传递单个变量与将bundle传递给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

对于向片段传递参数,我认为最佳做法是使用newInstance()方法:

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,您可以在一次调用中发送所有需要的内容

这就是主要的区别

希望这有帮助