Я пытаюсь изучить модели просмотра и реализовать их в моем приложении. Я изучал руководство по началу работы, но у меня есть пара вопросов.
Как мне прослушать нажатие кнопки? Поскольку предполагается, что вся бизнес-логика хранится в модели представления, я бы поместил там прослушиватель OnClick? Или я бы положил его своим методом onChange
в упражнении, которое запускает фрагмент?
Как указать фрагменту для использования модели представления?
Обновление рассматривало это руководство для парней Местоположение события щелчка в архитектуре MVVM . Разве не весь смысл mvvm в устранении необходимости в интерфейсах?
Обновление 2: найдено, где вы можете использовать привязку данных для вставки слушателя OnClick в кнопку здесь: Обработка события onClick с привязкой данных и MVVM и Использование библиотеки DataBinding для привязки событий
Живые данные наблюдают код из фрагмента запуска активности
//private BattleRhythmViewModel battleModel;
battleModel = ViewModelProviders.of(this).get(BattleRhythmViewModel.class);
battleModel.getEvents().observe(this, new Observer<ArrayList<Event>>() {
@Override
public void onChanged(@Nullable ArrayList<Event> events) {
// Add newly created events to array/recycler view
// Another one for pushing new platform/content to database
}
});
}
Просмотр модели для фрагмента
открытый класс BattleRhythmViewModel расширяет ViewModel {
private MutableLiveData<ArrayList<Event>> battleRhythmEvents;
private MutableLiveData<ArrayList<TableData>> battleRhythmExtra;
public LiveData<ArrayList<Event>> getEvents()
{
return battleRhythmEvents;
}
public LiveData<ArrayList<TableData>> getExtras()
{
return battleRhythmExtra;
}
}