1.添加依赖
implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"
2.创建MyViewModel
import androidx.lifecycle.ViewModel;
public class MyViewModel extends ViewModel {
public int number=0;
}
3.在Activity中使用。
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.ViewModelProvider;
import android.os.Bundle;
import android.view.View;
import com.cdc.viewmodel.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding mBinding;
private MyViewModel myViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding=DataBindingUtil.setContentView(this,R.layout.activity_main);
//如果继承的是AndroidViewModel,则这里使用以下的方法获取ViewModel的实例:
//wordViewModel=new ViewModelProvider.AndroidViewModelFactory
//(this.getApplication()).create(WordViewModel.class);
myViewModel=new ViewModelProvider(this).get(MyViewModel.class);
mBinding.textView.setText(String.valueOf(myViewModel.number));
mBinding.button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myViewModel.number++;
mBinding.textView.setText(String.valueOf(myViewModel.number));
}
});
mBinding.button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myViewModel.number+=2;
mBinding.textView.setText(String.valueOf(myViewModel.number));
}
});
}
}
4.效果。旋转屏幕页面中TextView的数值不会归零