Фрагменты Android — newInstance() против метода instantiate()

#android #android-fragments

#Android #android-фрагменты

Вопрос:

Есть ли какие-либо (отрицательные) преимущества в использовании метода для загрузки new ? instantiate() Fragments Или это только на личный вкус?

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

против.

 //... 
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:

Использование newInstance() предпочтительнее, если у вас есть аргументы, которые должны быть предоставлены фрагменту, так как легко увидеть, какие параметры необходимы, и вам не нужно беспокоиться о создании пакета и знать, какие ключи использовать.

Если ваш фрагмент не принимает аргументов, просто избегайте его вообще и создайте его с помощью конструктора по умолчанию, т. Е. new MyFragment() .