android databinding 数据驱动视图不更新?

class HomeFragmentVM extends ViewModel {
    public MutableLiveData<String> level = new MutableLiveData<>();

    public void setLevel(String level) {
        this.level.setValue(level);
    }

    public String getText() {
        return this.level.getValue().equals("one") ? "等级1" : "other";
    }
}

xml视图绑定如下:

<TextView
    // ...
    android:text='@{vm.getText()}'
/>

<Button
    // ...
    android:text='更新level'
    android:onClick='@{(view) -> vm.setLevel("two")}'
/>

为什么我点击了按钮更新了 level 但是显示的文本没有更新?

阅读 3.1k
1 个回答

没有为 viewmodel 设置生命周期所有者导致。

binding.setLifecycleOwner(activity);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题