Android Fragments - newInstance()vs instantiate()方法

时间:2014-06-23 23:43:04

标签: android android-fragments

使用instantiate()方法加载新Fragments是否有任何(dis-)优势?或者只是个人品味?

Bundle args = new Bundle();
args.puString(...);
args....
Fragment newFragment = Fragment.instantiate(this, fragmentName, args);

VS

//... 
NewFragment instance = NewFragment.newInstance(String param1, String param2);
//....
    public static NewFragment newInstance(String param1, String param2) {
    NewFragment fragment = new NewFragment();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

1 个答案:

答案 0 :(得分:1)

如果你有必须提供给Fragment的参数,最好使用newInstance(),因为很容易看到需要哪些参数,你不必担心创建一个包并知道哪些键是使用。

如果您的Fragment没有参数,那么只需完全避免它并使用默认构造函数,即new MyFragment()