Передача объектов во фрагмент без аргумента - PullRequest
0 голосов
/ 07 декабря 2018

Каковы будут последствия, если я передам object в fragment без использования bundle?Я просто открыл один из старого кода и нашел его там, и не мог не задать этот вопрос, поскольку я никогда не пробовал его.Также я не нахожу в ней утечек памяти.

Вот как это реализовано -

Класс активности:

MyFragment fragment =
        MyFragment.newInstance(getIntent().getStringExtra(DATA),
            instance.getCallback(),
            instance.getRequest());
    getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commit();

Класс фрагмента:

public class MyFragment extends Fragment {

  public MyFragment() {
    /* Required empty public constructor */
  }

  public static MyFragment newInstance(String data, Callback callback,
      Request request) {
    MyFragment fragment = new MyFragment();
    fragment.setCallback(callback);
    fragment.setRequest(request);
    fragment.setData(data);
    return fragment;
  }

  private void setCallback(Callback callback) {
    this.callback = callback;
  }

  private void setData(Data data) {
    this.data = data;
  }

  private void setRequest(Request request) {
    this.request = request;
  }
}

Обычно я использовал до сегодняшнего дня Fragment#setArguments(Bundle)

1 Ответ

0 голосов
/ 07 декабря 2018

Пожалуйста, ознакомьтесь с этим ответом: Почему не рекомендуется передавать объект во фрагмент с помощью простого метода получения геттера .

Короче говоря, вы потеряете свои данные при изменении конфигурации.

Существует в основном два способа общения с фрагментом: через связки или через интерфейс, который вы реализуете в своей деятельности.Пожалуйста, посмотрите эту ссылку, чтобы увидеть, как правильно общаться с фрагментом через интерфейс: https://developer.android.com/training/basics/fragments/communicating

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...