当前位置: 首页 > 知识库问答 >
问题:

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

井疏珂
2023-08-19
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个答案

丘浩宕
2023-08-19

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

binding.setLifecycleOwner(activity);
 类似资料:
  • 从《UML用户指南》第5章中,我发现了以下内容: 为了模拟结构关系, > 对于每对类,如果您需要从一个对象导航到另一个对象,请指定两者之间的关联。这是关联的数据驱动视图。 对于每对类,如果一个类的对象需要与另一个类的对象交互,而不是作为操作的参数,请指定两者之间的关联。这更像是一种由行为驱动的关联视图 这是我对第一类关联的理解,通过以下示例:一个类,User,具有三个属性,其中一个是另一个类,Ad

  • 如题;相关代码如下,网络请求是异步操作(回调不是在主线程中),请问各位大佬该如何解决? 初始化 recyclerview 代码: 更新数据的代码如下: 适配器代码如下

  • 关于数据驱动图形 数据驱动图形能够实现既快捷又精确地制作出图稿的多个版本。比方说,您要根据同一模板制作 500 个各不相同的 Web 横幅。您无需手动为模板填充数据(图像、文本等等),借助数据驱动图形,您可以使用引用数据库的脚本来自动生成 Web 横幅。 在 Illustrator 中,可以将任一图稿转化成数据驱动图形模板。您要做的只是定义画板上哪些对象是使用变量的动态(可变)对象。您可以利用变量

  • 本文向大家介绍浅谈vuejs实现数据驱动视图原理,包括了浅谈vuejs实现数据驱动视图原理的使用技巧和注意事项,需要的朋友参考一下 什么是数据驱动 数据驱动是vuejs最大的特点。在vuejs中,所谓的数据驱动就是当数据发生变化的时候,用户界面发生相应的变化,开发者不需要手动的去修改dom。 比如说我们点击一个button,需要元素的文本进行是和否的切换。在jquery刀耕火种的年代中,对于页面的

  • 如何在mongo db中创建一个可以公开集合中所有文档的视图?我使用了以下代码: 我正在尝试用管道空列表,但它不工作。你能帮忙吗?

  • 问题内容: 我目前正在尝试弄清楚如何在不重新加载整个页面的情况下更改路由参数。例如,如果我从 http://www.example.com/#/page 但将名称更新为“乔治”,将路线更改为: http://www.example.com/#/page/george 如果我已经路由了http://www.example.com/#/page/:name。 无需重新加载位置。可以只设置$ route