标签 livedata 下的文章

LiveData源码分析

使用

创建ViewModel

//继承ViewModel,创建LiveData
public class NameViewModel extends AndroidViewModel {

    private MutableLiveData<String> liveData;

    public MutableLiveData<String> getData() {
        if (liveData== null) {
            liveData= new MutableLiveData<String>();
        }
        return liveData;
    }

}

注册Observer

//注册观察者,监听LiveData数据变化
viewModel.getData().observe(this, new Observer<String>() {
    @Override
    public void onChanged(@Nullable String s) {
        mainFragmentText.setText(s);
    }
});

设置数据

//设置数据
if (viewModel.getData().getValue() != null && viewModel.getData().getValue().equals("world")) {
    viewModel.getData().setValue("hello");
} else {
    viewModel.getData().setValue("world");
}

- 阅读剩余部分 -