java - 在 Android Studio 中创建一个计算器。但我希望计算在一个文本视图中,并将结果发布在结果文本视图中
问题描述
我希望仅在一个文本视图中进行计算,并将结果发布在结果文本视图中。但我正在努力将数字相加有没有办法在一个文本视图中进行计算?
public class MainActivity extends AppCompatActivity {
private TextView results, calculationField;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView calculationField = (TextView) findViewById(R.id.calculationField);
TextView results = (TextView) findViewById(R.id.results);
Button button0 = (Button) findViewById(R.id.button0);
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
Button button3 = (Button) findViewById(R.id.button3);
Button button4 = (Button) findViewById(R.id.button4);
Button button5 = (Button) findViewById(R.id.button5);
Button button6 = (Button) findViewById(R.id.button6);
Button button7 = (Button) findViewById(R.id.button7);
Button button8 = (Button) findViewById(R.id.button8);
Button button9 = (Button) findViewById(R.id.button9);
Button buttonDot = (Button) findViewById(R.id.buttonDot);
Button buttonDivide = (Button) findViewById(R.id.buttonDivide);
Button buttonMultiply = (Button) findViewById(R.id.buttonMultiply);
Button buttonPlusMinus = (Button) findViewById(R.id.buttonPlusMinus);
Button buttonPercentage = (Button) findViewById(R.id.buttonPercentage);
Button buttonPlus = (Button) findViewById(R.id.buttonPlus);
Button buttonMinus = (Button) findViewById(R.id.buttonMinus);
Button buttonEquals = (Button) findViewById(R.id.buttonEquals);
Button buttonReset = (Button) findViewById(R.id.buttonReset);
View.OnClickListener numberButtons = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button0:
calculationField.append(button0.getText().toString());
break;
case R.id.button1:
calculationField.append(button1.getText().toString());
break;
case R.id.button2:
calculationField.append(button2.getText().toString());
break;
case R.id.button3:
calculationField.append(button3.getText().toString());
break;
case R.id.button4:
calculationField.append(button4.getText().toString());
break;
case R.id.button5:
calculationField.append(button5.getText().toString());
break;
case R.id.button6:
calculationField.append(button6.getText().toString());
break;
case R.id.button7:
calculationField.append(button7.getText().toString());
break;
case R.id.button8:
calculationField.append(button8.getText().toString());
break;
case R.id.button9:
calculationField.append(button9.getText().toString());
break;
case R.id.buttonDot:
calculationField.append(buttonDot.getText().toString());
break;
}
}
};
button0.setOnClickListener(numberButtons);
button1.setOnClickListener(numberButtons);
button2.setOnClickListener(numberButtons);
button3.setOnClickListener(numberButtons);
button4.setOnClickListener(numberButtons);
button5.setOnClickListener(numberButtons);
button6.setOnClickListener(numberButtons);
button7.setOnClickListener(numberButtons);
button8.setOnClickListener(numberButtons);
button9.setOnClickListener(numberButtons);
buttonDot.setOnClickListener(numberButtons);
View.OnClickListener symbolslistener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonReset:
calculationField.setText("");
results.setText("");
break;
case R.id.buttonPlusMinus:
calculationField.append(buttonPlusMinus.getText().toString());
break;
case R.id.buttonPercentage:
calculationField.append(buttonPercentage.getText().toString());
break;
case R.id.buttonDivide:
calculationField.append(buttonDivide.getText().toString());
break;
case R.id.buttonMultiply:
calculationField.append(buttonMultiply.getText().toString());
break;
case R.id.buttonMinus:
calculationField.append(buttonMinus.getText().toString());
break;
case R.id.buttonPlus:
calculationField.append(buttonPlus.getText().toString());
break;
case R.id.buttonEquals:
results.setText(buttonEquals.getText().toString());
break;
}
}
};
buttonReset.setOnClickListener(symbolslistener);
buttonPlusMinus.setOnClickListener(symbolslistener);
buttonPercentage.setOnClickListener(symbolslistener);
buttonDivide.setOnClickListener(symbolslistener);
buttonMultiply.setOnClickListener(symbolslistener);
buttonMinus.setOnClickListener(symbolslistener);
buttonPlus.setOnClickListener(symbolslistener);
buttonEquals.setOnClickListener(symbolslistener);
}
}
解决方案
推荐阅读
- swift - Swift 闭包异常处理
- javascript - 如何访问复选框值并将其传递给ajax
- html - Chrome DevTools 的网络选项卡中大量没有活动
- c++ - 以下代码如何每次都为唯一的调用堆栈唯一地实例化模板函数?
- html - 在我的横幅中的两个按钮之间创建一个空间
- ios - 如何将 cookie 字符串从 allHTTPHeaderFields 转换为 HTTPCookie
- azure-ad-b2c - Azure AD B2C 从自定义 UI 模板中去除 html 标记
- vb.net - 如何在新线程中修改文本框值
- oracle - 用于检查值是从 http 还是 https 开始的 Oracle 过程
- vba - 如何检查范围是否包含唯一值?