AndroidX-Jetpack-ViewModel

ViewModel用于保存和界面相关的一些数据,当界面发生重建时,不会影响到数据。比如语言发生切换,横竖屏变化,都会引起页面的重建。

第一步:自定义类继承ViewModel类
将数据count放到ViewModel中

import androidx.lifecycle.ViewModel;

public class MyViewModel extends ViewModel {
    public int count = 1;
}

第二步:在页面中获取ViewModel

mViewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(MyViewModel.class);

第三步:改变ViewModel中的数据,并设置到界面上

public void onClick(View v) {
    mViewModel.count++;
    tvResult.setText(String.valueOf(mViewModel.count));
}

当count被加到5时,切换语言,使Activity发生重建,而后再触发onClick方法,发现count从5变为6,而非从1开始

你可能感兴趣的:(AndroidX-Jetpack-ViewModel)