专栏名称: 刘望舒
腾讯云最具价值专家
目录
相关文章推荐
复利大王  ·  某公募研究员ED? ·  8 小时前  
复利大王  ·  北京97混血女找男 ·  8 小时前  
复利大王  ·  2024人均薪酬排行榜 ·  昨天  
复利大王  ·  民生银行某员工业绩工资 ·  2 天前  
51好读  ›  专栏  ›  刘望舒

Android Jetpack架构组件(六)一文带你了解ViewModel的使用和原理

刘望舒  · 掘金  · android  · 2019-10-29 22:43

正文

请到「今天看啥」查看全文


2.ViewModel基本使用

添加依赖 Android Jetpack架构组件(二)带你了解Lifecycle(使用篇) 这篇文章中讲过,一般情况只需要添加如下代码就可以:

implementation "android.arch.lifecycle:extensions:1.1.1"
复制代码

由于Gradle默认支持依赖传递,添加这一句代码就依赖了很多库。如果不懂Gradle的依赖传递,可以查看 Android Gradle (二)签名配置和依赖管理 这篇文章。

eXj6eJ.png
如果需要其他特性,比如kotlin的支持,再另行添加。

自定义ViewModel 继承ViewMode,实现自定义ViewModel。

import android.arch.lifecycle.LiveData;
import android.arch.lifecycle.MutableLiveData;
import android.arch.lifecycle.ViewModel;

public class MyViewModel extends ViewModel {
    private MutableLiveData<String> name;
    public LiveData<String> getName() {
        if (name == null) {
            name = new MutableLiveData<String>();
            addName();
        }
        return name;
    }
    private void addName() {
        name.setValue("Android进阶解密");
    }
}
复制代码

getName方法中创建一个MutableLiveData,并通过MutableLiveData的setValue方法来更新数据。

使用ViewModel 然后就可以在Activity中使用MyViewModel了,如下所示。

import android.arch.lifecycle.Observer;
import android.arch.lifecycle.ViewModelProviders;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";

    @Override
    protected






请到「今天看啥」查看全文