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开始