Прослушивание нажатия кнопки и связывание фрагмента с моделью представления - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь изучить модели просмотра и реализовать их в моем приложении. Я изучал руководство по началу работы, но у меня есть пара вопросов.

  1. Как мне прослушать нажатие кнопки? Поскольку предполагается, что вся бизнес-логика хранится в модели представления, я бы поместил там прослушиватель OnClick? Или я бы положил его своим методом onChange в упражнении, которое запускает фрагмент?

  2. Как указать фрагменту для использования модели представления?

Обновление рассматривало это руководство для парней Местоположение события щелчка в архитектуре 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;
}


}
...