Передача данных из действия во фрагмент с использованием Otto

В моем приложении я динамически добавляю фрагменты в контейнер в главном представлении активности. Я хотел бы знать, каков наилучший способ передачи данных при использовании Otto, когда мы добавляем Fragment. В настоящее время это то, как я это делаю, пожалуйста, в примере я не публикую свой CustomObject

Внутри моей основной деятельности

    getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, MY_CUSTOM_FRAGMENT).commit();
    BusProvider.getInstance().post(produceCustomString());

Внутри моего фрагмента

    @Subscribe
    public void onCustomStringChanged(String customString) {
    } 

1 ответ

Решение

Методы с комментариями @Subscribe будет вызван автоматически, если у вас также есть @Produce метод для того же типа зарегистрирован.

Лучший способ сообщить новые фрагменты данных, как это у вас есть @Produce метод на деятельность:

@Produce public String produceCustomString() {
  return "Hello, World!";
}

И тогда все ваши фрагменты, которые имеют @Subscribe методы:

@Subscribe public void onCustomStringEvent(String event) {
  // ...
}

Когда вы зарегистрируете фрагмент с этим методом, Отто вызовет @Produce метод действия, чтобы получить последнее значение, которое оно передаст методу фрагмента.

Другие вопросы по тегам