【发布时间】:2016-07-01 16:08:33
【问题描述】:
我试图确保当您忘记输入我的应用不会崩溃的数字时,我有一个名为的文本字段 仅接受数字的编辑,当我测试如果您不在文本字段中输入任何内容会发生什么时出现此错误,这是一个数字文本字段,只会在您的设备上显示数字键盘,因此您无法输入文本根本就只是数字 谁能告诉我我做错了什么?
这是错误信息: 致命例外:主要 进程:com..rhgtimecard,PID:27379 java.lang.NumberFormatException:无效的int:“” 在 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;
}
}
}
谁能告诉我这里哪里出错了,或者如何实际检查是否有人输入了数字?
【问题讨论】:
-
是编辑编辑文本本身还是编辑文本中的字符串。和edit2有什么区别
-
@akyirem samuel edit 只是一个数字文本字段,在相关的 xml 文件中如此定义,edit2 是一个用于输入密码的文本字段,被定义为在相关的 xml 文件中接受文本跨度>
-
好的。我想你现在已经意识到了这个错误。您应该在 edittext 中输入的文本而不是 edittext 本身调用 equals("")。像 edit.getText().toString.equals("") 这样的东西。希望有帮助