0

電卓タイプのアプリを作成しました。私の友人は、小数点以下 1 桁をeditText's にのみ入力すると、アプリがクラッシュすることを発見しました。10 進数と整数は正常に機能しますが、 を.入力すると数値形式の例外が発生します。

シングル.が に配置されているかどうかを確認editTextして、アプリをクラッシュさせないようにユーザーに通知するトーストを表示します。

私の問題は、.a に数値がないことです...

4

2 に答える 2

1

try/catchテキストを解析するときにとにかく実行する必要がある でラップできます。だから何か

    try
    {
        int someInt = Integer.parseInt(et.getText().toString());
        // other code
    }
    catch (NumberFormatException e)
    {
        // notify user with Toast, alert, etc...
    }

このようにして、数値形式の例外から保護し、コードを後で再利用しやすくします。

于 2013-11-14T23:36:55.357 に答える
0

次のようにすると、.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
于 2013-11-15T03:00:19.983 に答える