[英]Why does my app gets stopped when I click the arithmetic function button in my calculator app?
我正在 android studio 中制作一個計算器應用程序。 一切正常,但是當在輸入 value1 之前單擊算術按鈕 +,-,*,/ 時,應用程序崩潰。 甚至我也提到,如果 result(input) 為空,則不應發生任何事情。
Button buttonMUL;
Button buttonDIV;
Button buttonSUB;
Button buttonADD;
Button buttonEQL;
float value1, value2;
boolean Add, Mul, Sub, Div;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonADD.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (result == null) {
result.setText("");
}
else {
value1= Float.parseFloat(result.getText()+"");
Op.append("+");
result.setText(null);
Add = true;
}
}
});
buttonMUL.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (result == null) {
result.setText("");
}
else {
value1= Float.parseFloat(result.getText()+"");
Op.append("x");
result.setText(null);
Mul = true;
}
}
});
buttonSUB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (result == null) {
result.setText("");
}
else {
value1= Float.parseFloat(result.getText()+"");
Op.append("-");
result.setText(null);
Sub = true;
}
}
});
buttonDIV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (result == null) {
result.setText("");
}
else {
value1= Float.parseFloat(result.getText()+"");
Op.append("/");
result.setText(null);
Div = true;
}
}
});
buttonEQL.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
value2 = Float.parseFloat(result.getText()+"");
Op.setText("");
if (Add) {
result.setText(value1 + value2+"");
Op.setText(result.getText());
Add = false;
}
else if (Mul) {
result.setText(value1 * value2+"");
Op.setText(result.getText());
Mul = false;
}
else if (Div) {
result.setText(value1 / value2+"");
Op.setText(result.getText());
Div = false;
}
else if (Sub) {
result.setText(value1 - value2+"");
Op.setText(result.getText());
Sub = false;
}
}
});
}
}
有沒有辦法通過使用某種吐司或類似的東西來防止它。
只需將 value1 初始化為 0 並處理除零異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.