0
私はアンドロイドスタジオで電卓アプリを作っていますが、私は=演算子をクリックしているときに常に結果をゼロにしています。親切にエラーを解決するのを手伝ってください。コードは以下の通りである:btnSub、btnMul、btnDivide、btnPercentage/Android Calculatorアプリケーションの出力としてゼロが表示されるのはなぜですか?
btnSub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btnMul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btnDivide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btnPercentage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btnEquals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (operator){
case ADD : result = result + num;
case SUBTRACT : result = result - num;
case MULIPLY : result = result * num;
case DIVIDE : result = result/num;
case PERCENTAGE : result = result/100;
}
try {
etDisplay.setText(String.valueOf(result));
}
catch (ArithmeticException e){
etDisplay.setText("");
}
finally {
num = 0;
result = 0;
}
}
});
}
}についても同様
public class MainActivity extends AppCompatActivity {
Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0,
btnAdd, btnSub, btnMul, btnDivide, btnEquals, btnPercentage,
btnClear, btnErase, btnPoint;
EditText etDisplay;
int num = 0, result = 0;
int operator;
public static final int ADD = 0;
public static final int SUBTRACT = 1;
public static final int MULIPLY = 2;
public static final int DIVIDE = 3;
public static final int PERCENTAGE = 4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etDisplay = (EditText) findViewById(R.id.etDisplay);
btn0 = (Button) findViewById(R.id.btn0);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn4 = (Button) findViewById(R.id.btn4);
btn5 = (Button) findViewById(R.id.btn5);
btn6 = (Button) findViewById(R.id.btn6);
btn7 = (Button) findViewById(R.id.btn7);
btn8 = (Button) findViewById(R.id.btn8);
btn9 = (Button) findViewById(R.id.btn9);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnSub = (Button) findViewById(R.id.btnSub);
btnMul = (Button) findViewById(R.id.btnMul);
btnDivide = (Button) findViewById(R.id.btnDivide);
btnEquals = (Button) findViewById(R.id.btnEquals);
btnPercentage = (Button) findViewById(R.id.btnPercentage);
btnClear = (Button) findViewById(R.id.btnClear);
btnClear.setOnClickListener(new View.OnClickListener() {
/****btnClear is used to clear the contents of EditText****/
@Override
public void onClick(View v) {
etDisplay.setText("");
num = 0;
result = 0;
}
});
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num = num * 10;
etDisplay.setText("");
etDisplay.setText(String.valueOf(num));
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num = (num * 10) + 1;
etDisplay.setText("");
etDisplay.setText(String.valueOf(num));
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num = (num * 10) + 2;
etDisplay.setText("");
etDisplay.setText(String.valueOf(num));
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num = (num * 10) + 3;
etDisplay.setText("");
etDisplay.setText(String.valueOf(num));
}
});
他のボタンについても同様
//
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/*...*/
}
});
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
operator = ADD;
result = num;
num = 0;
}
});
/
ありがとう...:)...それは今うまく働いています... :) –