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

时间:2016-07-01 16:08:34

标签: java android textfield

我正在尝试确保当您忘记输入我的应用程序不会崩溃的数字时,我有一个名为的文本字段 编辑只接受数字,当我测试如果您没有在文本字段中输入任何内容时会出现此错误,这是一个数字文本字段,只会在您的设备上显示数字键盘,因此您无法输入文本根本就是数字 谁能告诉我我做错了什么?

这是错误消息: 致命异议:主要     处理:com。 .rhgtimecard,PID:27379    java.lang.NumberFormatException:无效的int:“”    at 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;
    }
}
}

任何人都可以告诉我这里我哪里出错或如何实际检查是否有人输入了号码?

3 个答案:

答案 0 :(得分:1)

if (!edit.equals(""))

这可能是您应该更改的行:

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

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

如果您默认将整数设置为0,则可以执行以下操作:

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

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

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

android:inputType="number"

在Java中:

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

//Your content here

}