電卓タイプのアプリを作成しました。私の友人は、小数点以下 1 桁をeditText
's にのみ入力すると、アプリがクラッシュすることを発見しました。10 進数と整数は正常に機能しますが、 を.
入力すると数値形式の例外が発生します。
シングル.
が に配置されているかどうかを確認editText
して、アプリをクラッシュさせないようにユーザーに通知するトーストを表示します。
私の問題は、.
a に数値がないことです...
電卓タイプのアプリを作成しました。私の友人は、小数点以下 1 桁をeditText
's にのみ入力すると、アプリがクラッシュすることを発見しました。10 進数と整数は正常に機能しますが、 を.
入力すると数値形式の例外が発生します。
シングル.
が に配置されているかどうかを確認editText
して、アプリをクラッシュさせないようにユーザーに通知するトーストを表示します。
私の問題は、.
a に数値がないことです...
try/catch
テキストを解析するときにとにかく実行する必要がある でラップできます。だから何か
try
{
int someInt = Integer.parseInt(et.getText().toString());
// other code
}
catch (NumberFormatException e)
{
// notify user with Toast, alert, etc...
}
このようにして、数値形式の例外から保護し、コードを後で再利用しやすくします。
次のようにすると、.1 を 0.1 として扱うことができます。
String text = et.getText().toString();
int len = text.length();
// Do noting if edit text just contains a "." without numbers
if(len==0 || (len==1 && text.charAt(0).equals(".")))
return;
if(text.charAt(0).equals(".") && text.length() > 1) {
text = "0" + text;
}
// Do your parsing and calculations