一、ViewModel
1.作用
储存计算器状态,以及输入域,输出域内容,检测变化
2.代码实现
package com.example.calculator.viewmodels;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import com.example.calculator.model.Calculator;
public class MainViewModel extends ViewModel {
private MutableLiveData<Calculator> calculatorMutableLiveData;
private MutableLiveData<String> topContent;
private MutableLiveData<String> bottomContent;
//状态类
public MutableLiveData<Calculator> getCalculatorMutableLiveData() {
if(calculatorMutableLiveData==null){
calculatorMutableLiveData=new MutableLiveData<>();
Calculator calculator=new Calculator();
calculatorMutableLiveData.setValue(calculator);
}
return calculatorMutableLiveData;
}
//上一个表达式
public MutableLiveData<String> getTopContent() {
if(topContent==null){
topContent=new MutableLiveData<>();
topContent.setValue("");
}
return topContent;
}
//结果或者表达式的输入域
public MutableLiveData<String> getBottomContent() {
if(bottomContent==null){
bottomContent=new MutableLiveData<>();
bottomContent.setValue("0") ;
}
return bottomContent;
}
}