Android 使用LiveData(一)入门

观察者模式LiveData使用;

为了降低代码耦合度而优化的类,方便后期维护;开闭原则;

这个类只要拿到ViewModelProviders.of(this).get(WelcomeLiveDate.class);就能在其他类中更新数据.

ViewModel是后台数据类,不会被Activity影响,数据储存比较安全,而且方便维护;

LiveData是配合ViewModel使用而产生的类,主要用于数据更新时,在任何地方的代码都可以更新界面.

以上是个人见解,不对请留言指正;

复杂的活简单解说,以下结合官方做出5个小步骤:

转载注明出处:by xyx IN csdn@包罗万码

地址:https://blog.csdn.net/a316375/article/details/83041101

创建一个后台数据类;

public class WelcomeLiveDate extends ViewModel {
    MutableLiveData<String> strings;

    public MutableLiveData<String> getCurrentName() {
        if (strings == null) strings = new MutableLiveData<String>();
        return strings;
    }
}

使用的时候:

public class WelcomeActivity extends AppCompatActivity {

   .......

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       .......
       //1.实例化数据类LiveDate
        welLiveDate = ViewModelProviders.of(this).get(WelcomeLiveDate.class);
        //2.创建一个观察类
        Observer<String> nameObserver=new Observer<String>() {
            @Override
            public void onChanged(@Nullable String s) {
                  view.setText(s);//4.观察类观察到数据更新时候,通知UI更新界面
            }
        };
        //3.绑定观察类
        welLiveDate.getCurrentName().observe(this,nameObserver);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //5.数据变化时候推送给观察者
                welLiveDate.getCurrentName().setValue("123");//主线程
                welLiveDate.getCurrentName().postValue("456");//子线程
                //最后结果是456而不是123,不管是主线程还是子线程都能影响UI线程 

            }
        });

    }
}

 ViewModel不再介绍,是一个持续的后台数据类,详解见MVVM模式

这里:MutableLiveData是LiveData的具体类;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值