在前面我们了解了横竖屏的切换会导致暂时数据的丢失。然后解决的办法是通过Bundle键值对的形式保存下来,再取出赋值。
而ViewModel也可以实现这样的效果。
接下来实现的效果是由两个按键的点击,可以对一个数进行变大,然后横竖屏的切换不会使得这个值初始化。
先写一个类继承ViewModel:
public class MyViewModel extends ViewModel {
public int number=0;
@Override
protected void onCleared() {
super.onCleared();
Log.e("TAG", "onCleared");
}
}
核心代码:
private MyViewModel viewModel;
private Button btn_one;
private Button btn_two;
private TextView tv_one;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_uitest);
//布局初始化
initView();
viewModel=new ViewModelProvider(this).get(MyViewModel.class);
tv_one.setText(String.valueOf(viewModel.number)