ViewModel用于保存和界面相關(guān)的一些數(shù)據(jù)洪鸭,當界面發(fā)生重建時样刷,不會影響到數(shù)據(jù)。比如語言發(fā)生切換览爵,橫豎屏變化置鼻,都會引起頁面的重建。
第一步:自定義類繼承ViewModel類
將數(shù)據(jù)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中的數(shù)據(jù)蜓竹,并設(shè)置到界面上
public void onClick(View v) {
mViewModel.count++;
tvResult.setText(String.valueOf(mViewModel.count));
}
當count被加到5時箕母,切換語言,使Activity發(fā)生重建梅肤,而后再觸發(fā)onClick方法司蔬,發(fā)現(xiàn)count從5變?yōu)?,而非從1開始