初始化片段

时间:2018-11-13 11:05:48

标签: android-fragments

我是Android新手,在初始化Fragment时遇到问题 我正在看两行代码,无法弄清这两种方法之间的实际差异以及该选择哪种方法。请建议

 1) SignUpFragment fragment = new SignUpFragment();
 2) SignUpFragment fragment = SignUpFragment.newInstance();

3 个答案:

答案 0 :(得分:0)

我个人使用第一个,因为它将创建一个新的signupFragment对象,而第二个选项将创建该类的新实例。两者之间的区别在下面的链接中定义。

https://stackoverflow.com/questions/3323330/difference-between-object-and-instance

答案 1 :(得分:0)

如果没有要传递给片段的参数,则可以使用第一个。

SignUpFragment fragment = new SignUpFragment();

但是,如果您有参数,则可以使用第二种方法之类的工厂方法来隐藏创建包和放置参数的样板代码。

ProfileFragment fragment = ProfileFragment.newInstance(userId);


public class ProfileFragment extends Fragment {
    public static ProfileFragment newInstance(int userId) {
          Bundle args = new Bundle();
          args.putInt("userId", userId);
          ProfileFragment fragment = new ProfileFragment();
          fragment.setArguements(args);
          return fragment;
    }
}

答案 2 :(得分:0)

  

1)SignUpFragment片段= new SignUpFragment();

您只应在不需要更频繁地创建SignUpFragment实例的情况下使用。

  

2)SignUpFragment片段= SignUpFragment.newInstance();

这是更推荐的方法。在这种情况下,您将遵循Singleton模式创建类的实例,将来可以根据需要创建更多通用方法。