即使选中也会导致致命异常的空白数字字段

blank number field causing fatal exception even if checked

我试图确保当您忘记输入数字时我的应用程序不会崩溃,我有一个名为 编辑只接受数字,当我测试如果你不在文本字段中输入任何内容会发生什么时我收到这个错误,这是一个数字文本字段并且只在你的设备上调出数字键盘,所以你不能输入文本根本只是数字 谁能告诉我我做错了什么?

这是错误信息: 致命例外:主要 进程:com..rhgtimecard,PID:27379 java.lang.NumberFormatException:无效整数:“” 在 com..rhgtimecard.TimeIn$2.onClick(TimeIn.java:478)

这是相关的代码块

if (login == 1) {
    int getemn = 0;
if (!edit.equals("")) {//**if you didn't enter anything but pressed set anyway this should stop the rest of the code block.
    //I tried setting this to if (edit != null) didn't work either, tried setting this to if (!edit.equals()) but it wont 
    //compile like that at all** 
    getemn = Integer.parseInt(edit.getText().toString());//**this is line 478 that throws the fatal exception error**
    String getemp = edit2.getText().toString();
    String allpass = "Passwords";
    SharedPreferences loadPass = getSharedPreferences(allpass, MODE_PRIVATE);
    String empStrng = String.valueOf(getemn);
    String passes = "pass";
    if (getemn < 13) {
        passes = "pass" + empStrng;
        g.setData4(getemn, loadPass.getString(passes, "0123"));
    }
    String[] pass = g.getData4();
    if (i == 0 && getemp.equals(pass[getemn])) {
    g.setData3(getemn);
    Logscript();
    }
    if (i == 0 && !(getemp.equals(pass[getemn]))) {
        tfone.setText("No matches found");
        tftwo.setText("Enter password");
        edit2.setText("");
        i = 1;
    }
}
}

谁能告诉我这里哪里出错了,或者如何实际检查是否有人输入了数字?

if (!edit.equals(""))

您可能应该将这行更改为:

if(!edit.getText().toString().equals(""))

现在您正在检查实际编辑对象是否等于空白数字,而不是编辑框的文本。

如果您将整数默认设置为 0,您可以这样做:

getemn = Integer.parseInt(edit.getText().toString().equals("") ? "0" : edit.getText.toString() );

试试这个:

if(!edit.getText().toString().equals(""))

将此 属性 添加到 XML 文件中的 EditText

android:inputType="number"

并且在 Java 中:

if(!editText.getText().toString()isEmpty()){

//Your content here

}