android studio MVVM实体类自定义getter and setter自动刷新UI界面

发布于:2023-01-04 ⋅ 阅读:(392) ⋅ 点赞:(0)

     android mvvm框架中LiveData<T>数据如果T是一个自定义实体类类型,修改了实体类中的某个字段还需要重新手动调用LiveData的setValue或者postValue才可以更新UI界面,一般会让该实体类继承BaseObservable,并重写他的set方法添加notifyPropertyChanged(BR.FieldName),在字段重新赋值时触发更新对应UI界面,不过当实体类属性字段比较多时依次添加notifyPropertyChanged函数和@Bindable注解比较费时费力,我们可以自定义generate getter and setter一键添加notifyPropertyChanged函数和@Bindable注解

在这里插入图片描述

自定义getter模板:

  1. 选择一个实体类右键 Generate->Getter and Setter
    在这里插入图片描述
  2. 点击Getter template右侧三点更多按钮,默认是Intellij Defaule模板,我们把Intellij Defaule模板内容复制,点击加号创建一个新的模板,命名为Mvvm Observable
    在这里插入图片描述
  3. 将Intellij Defaule模板内容复制到Mvvm Observable模板模板上,并在顶部添加@Bindable,保存关闭
    在这里插入图片描述

自定义setter模板:

  1. 点击Setter template右侧三点更多按钮,默认是Intellij Defaule模板,我们把Intellij Defaule模板内容复制,点击加号创建一个新的模板,命名为Mvvm Observable
    在这里插入图片描述

  2. 将Intellij Defaule模板内容复制到Mvvm Observable模板模板上,并在底部添加 notifyPropertyChanged(BR.$field.name);,保存关闭
    在这里插入图片描述

使用Mvvm Observable模板生成自定义getter and setter代码

     getter模板和setter模板分别选择Mvvm Observable模板,选中需要生成的字段,点ok自动生成代码
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看