侦听按钮单击并将片段与视图模型链接

时间:2019-06-23 00:17:00

标签: android mvvm android-viewmodel

我正在尝试学习视图模型并在我的应用中实现它们。我一直在遵循入门指南,但是我有两个问题。

  1. 我如何收听按钮点击?由于所有业务逻辑都应该存储在视图模型中,因此我可以在其中放置OnClick侦听器吗?还是在启动该片段的活动中将其与我的onChange方法放在一起?

  2. 如何告诉片段使用视图模型?

Update正在查看此人教程Location of click event in MVVM architecture。 mvvm的目的不是要消除接口的需求吗?

更新2:找到了可以在此处使用数据绑定将OnClick侦听器推入按钮的位置:Handle onClick event with Databinding and MVVMUsing DataBinding library for binding events

实时数据观察活动启动片段中的代码

 //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;
}


}

0 个答案:

没有答案