Правильный способ и место для восстановления информации о пакете на фрагмент?

Я видел Bundles восстанавливается в некоторых методах обратного вызова Android, но во многих случаях существует ручное создание и настройка Bundleкак на сайте разработчиков, в данном случае из внешнего сообщения о Fragment создание:

public static DetailsFragment newInstance(int index) {
    DetailsFragment f = new DetailsFragment();

    // Supply index input as an argument.
    Bundle args = new Bundle();
    args.putInt("index", index);
    f.setArguments(args);

    return f;
}

В этом другом вопросе, например, данные пакета восстанавливаются в onCreateView() метод.

public class Frag2 extends Fragment {

    public View onCreateView(LayoutInflater inflater,
        ViewGroup containerObject,
        Bundle savedInstanceState){
        //here is your arguments
        Bundle bundle=getArguments(); 

        //here is your list array 
        String[] myStrings=bundle.getStringArray("elist");   
    }
}

Я немного смущен Bundle Данные, предоставляемые каждым методом обратного вызова VS "другие пакеты":

Bundle bundle=getArguments(); 

и правильный способ и место для извлечения этих различных типов связанных данных.

Заранее спасибо!

1 ответ

Решение

Описанные выше два способа являются абсолютно правильным способом

  • инициализировать новый экземпляр Fragment и передать начальные параметры.
  • получить начальные параметры в Fragment,

Другими словами, вы на правильном пути! Это должно работать, и вы должны быть довольны собой:)

РЕДАКТИРОВАТЬ:

  • Bundle можно получить в любом onCreateView() или жеonCreate(), я бы предпочел onCreate(), поскольку он представляет собой создание Fragment экземпляр и является правильным местом для инициализации.
  • Всегда есть один и только один Bundle экземпляр, полученный по вызову getArguments(), и это Bundle Экземпляр содержит все ваши ints, Stringс, что угодно.
Другие вопросы по тегам