Передача данных из действия во фрагмент с использованием 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
метод действия, чтобы получить последнее значение, которое оно передаст методу фрагмента.