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
但是显示的文本没有更新?
回复
1个回答
test
2024-06-28
没有为 viewmodel 设置生命周期所有者导致。
binding.setLifecycleOwner(activity);
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容