EditText から入力された 2 つの数値を加算する簡単なプログラムを実行しています。しかし、ユーザーが [クリックして追加] ボタンをクリックしてフィールドを空のままにすると、プログラムは「残念ながら、プログラムが停止しました」と言って終了します。
コードは次のとおりです。
public class MainActivity extends Activity {
long a, b, sum;
Button add, clr;
EditText e1, e2, res;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
add = (Button) findViewById(R.id.bAdd);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) throws NumberFormatException {
// TODO Auto-generated method stub
e1 = (EditText) findViewById(R.id.tv1);
String str1 = e1.getText().toString();
e2 = (EditText) findViewById(R.id.tv2);
String str2 = e2.getText().toString();
try{
a = Integer.parseInt(str1);
b = Integer.parseInt(str2);
}catch(NumberFormatException e){
res.setText("Please enter valid entries");
}
sum = a + b;
res = (EditText) findViewById(R.id.result);
res.setText("Your sum is " + sum);
}
});
clr = (Button) findViewById(R.id.bClr);
clr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) throws NumberFormatException {
// TODO Auto-generated method stub
e1.setText("");
e2.setText("");
res.setText("");
}
});
}
}
空白の EditText エントリに対してアプリが「有効なエントリを入力してください」と応答するようにします。