首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    AAC---LiveData

    合理的Configuration改变 旋转时候,它会立马接收到最新的可用数据,而不会因为重新创建Activity而重新创建 共享资源 可以通过继承一个LiveData对象,并且使用单例模式来封装一个系统的...MutableLiveData:可变的LiveData 普通的LiveData将setValue以及postValue的作用于定义成protected,除非继承LiveData否则访问这两个函数。...UI Controller修改UI 继承LiveData 通过继承LiveData类重写onActive以及onInactive函数来完成对数据请求/前台耗时操作的回调等等 public class StockLiveData...(userLiveData, user -> { user.name + " " + user.lastName }); Transformations.switchMap private LiveData...User> getUser(String id) { ...; } LiveData userId = ...; LiveDataUser> user = Transformations.switchMap

    1.1K20

    Android Jetpack系列之ViewBinding和DataBinding

    user = new User("黄林晴", "男"); activityMain2Binding.setUser(user); 运行程序如下所示: ?...如果我们现在要求当性别为null的时候显示“未设置”要怎么做呢,我们可以在xml中进行判断 在data标签下导入TextUtil  user = new User(); user.userName.set("黄林晴-初始值"); user.userGender.set("男"); activityMain2Binding.setUser...类继承自BaseObservable,使用Bindable注解注册通知,当值改变的时候通过notifyPropertyChanged()发送通知,为BR 类是数据绑定生成的一个用于数据绑定的资源的 ID...Android Studio 3.1 及更高版本允许用 LiveData 对象替换可观察字段,结合JetPack的使用,数据通知都推荐使用LiveData了,等我们讲到LiveData的时候回重新使用这个例子

    2K20

    Android Jetpack 之ViewBinding和DataBinding

    user = new User("黄林晴", "男"); activityMain2Binding.setUser(user); 运行程序如下所示: ?...如果我们现在要求当性别为null的时候显示“未设置”要怎么做呢,我们可以在xml中进行判断 在data标签下导入TextUtil  user = new User(); user.userName.set("黄林晴-初始值"); user.userGender.set("男"); activityMain2Binding.setUser...类继承自BaseObservable,使用Bindable注解注册通知,当值改变的时候通过notifyPropertyChanged()发送通知,为BR 类是数据绑定生成的一个用于数据绑定的资源的 ID...Android Studio 3.1 及更高版本允许用 LiveData 对象替换可观察字段,结合JetPack的使用,数据通知都推荐使用LiveData了,等我们讲到LiveData的时候回重新使用这个例子

    3.9K30

    JetPack--Room数据库

    需要满足:定义的类是一个继承RoomDatabase的抽象类,注解中定义包含实体类列表,包含一个没有参数的抽象方法并返回Dao对象 一、Room上手 首先添加依赖: implementation...会根据这个构造将表里的数据转化为实体类,对于其他我们代码里使用的构造方法,可以使用@Ignore注解表示Room将忽略它,属性也可以使用这个注解,表示这个属性将不会生成数据库字段 使用@PrimaryKey注解指定主键并且是自增长的...void deleteUser(User user); //更新一条数据 @Update void updateUser(User user); } 定义抽象类,继承于...") LiveDataUser>> getUsers(); //根据id查询 @Query("SELECT * FROM user WHERE id = :id")...deleteAll(View v) { userRepository.deleteAllUser(); } public LiveDataUser>

    1.5K20

    Android技术栈(四)Android Jetpack MVVM 完全实践

    #getName和User#setName现在都可以直接写成@{user.name},这种表达式也是最简单的表达式,属于直接赋值表达式 默认值default,在xml中 `android:text="@...数据的处理应该交给布局控制器或者ViewModel来做,布局应该只负责渲染数据. 2.3.4 使用在Java中生成的ViewDataBinding 使用DataBinding后Android Studio会为每个xml布局生成一个继承自...#setName,就写@={user.name})的直接编写并且不支持复杂表达式 2.5.2 兼容LiveData与ObservableField 实际上,android:text不只能接受String...LiveData可以有初始值,也可以没有,如果在没有初始值得情况下被订阅,则订阅者不会收到任何的值. 4.3 MediatorLiveData MediatorLiveData继承自MutableLiveData...DataBinding的一种,与DataBinding函数库中生成的DataBinding相同,它也是使用数据来触发View层的改变.所以尽可能不要把它写到ViewModel中,但这不是必须的,做在对List操作要求比较高的情况下可以写到

    3.9K01
    领券