Приложение калькулятор на Andoid. Почему приложение выдает ошибку?
Есть метод, который проверяет 2 поля на наличие текста, при нажатии на кнопку "=". Если одно из полей пустое - должно выводиться всплывающее окно, в противном случае происходит вычисление. При первых вычислениях все корректно работает. Но при вторичном нажатии на "=" приложение крашится. firstNumberView и secondNumbeeView являются объектами типа TextView
public void onOperandClick(View view) {
Button button = (Button) view;
pointButton.setEnabled(true);
switch (button.getText().toString()) {
case "+":
operandView.setText("+");
break;
case "-":
operandView.setText("-");
break;
case "*":
operandView.setText("*");
break;
case "/":
operandView.setText("/");
break;
case "=":
if (firstNumberView.getText().equals("") || secondNumberView.getText().equals("")) {
Toast toast = Toast.makeText(this, "Input all numbers", Toast.LENGTH_SHORT);
toast.show();
break;
} else {
calculate();
firstNumberView.setText("");
operandView.setText("");
secondNumberView.setText("");
break;
}
}
Ответы (1 шт):
Автор решения: Вася Воронцов
→ Ссылка
Я думаю основная ошибка не в «пропуске» if-блока, а в первоначальном исполнении. Вот:
f.setText("");
//Ваше действие setText("");
f.getText();
//Вернёт null
f.getText().toString();
//Вернёт ""
Я думаю, что надо сравнивать не с пустой строкой, а с null (или примените toString() и сравнивайте с пустой строкой)