正文
2.ViewModel基本使用
添加依赖
在
Android Jetpack架构组件(二)带你了解Lifecycle(使用篇)
这篇文章中讲过,一般情况只需要添加如下代码就可以:
implementation "android.arch.lifecycle:extensions:1.1.1"
复制代码
由于Gradle默认支持依赖传递,添加这一句代码就依赖了很多库。如果不懂Gradle的依赖传递,可以查看
Android Gradle (二)签名配置和依赖管理
这篇文章。
如果需要其他特性,比如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