計算したいフィールドが2つあります。両方のフィールドに数値を入力するとプログラムは正常に動作しますが、一方が空で「buttonSubtract」(calc-button) を押すと、「アプリケーションが閉じられました...」というメッセージが表示されてシャットダウンします。catch-clause が例外をキャッチしないのはなぜですか?
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonSubtract = (Button) findViewById(R.id.buttonsubtract);
editTextNumber1 = (EditText) findViewById(R.id.textnumber1);
editTextNumber2 = (EditText) findViewById(R.id.textnumber2);
textSum = (TextView) findViewById(R.id.textViewSum);
try
buttonSubtract.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if (editTextNumber1.getText().toString() == ""
|| editTextNumber2.getText().toString() == "")
{
textSum.setText("Put numbers in both fields");
} else
{
int sum = Integer.parseInt(editTextNumber1.getText()
.toString())
- Integer.parseInt(editTextNumber2.getText()
.toString());
textSum.setText("sum: " + sum);
}
}
});
} catch (NumberFormatException e)
{
textSum.setText("Put numbers in both fields");
}