【发布时间】:2014-10-28 17:33:40
【问题描述】:
我的活动中有一些 EditText。用户必须填写它们并确认他的输入。一些 EditText 仅用于数字。为了确保只有有效值,我尝试使用 Integer.parseInt(...) 将输入转换为 Integer。问题是无论字符串是什么 NumberFormatException 都不会被抛出。我调试了问题,每次都执行对应的行,但没有抛出异常。
这是我的方法的代码:
private boolean formNotEmpty()
{
boolean returnValue = true;
for(int i = 0; i < _editText.size();i++){
if(_editText.get(i).getText().toString().trim().length() == 0)
{
returnValue = false;
_toastMessage = "Es müssen alle Felder ausgefüllt werden.";
break;
}else if(_editText.get(i).getHint().equals(getResources().getString(R.string.rentactivity_hint_userPLZ))
||_editText.get(i).getHint().equals(getResources().getString(R.string.rentactivity_hint_userTelefon)))
{
try{
Integer.parseInt(_editText.get(i).getText().toString().trim());
}catch(NumberFormatException e)
{
_toastMessage += "In "+_editText.get(i).getHint().toString() +" dürfen nur Zahlen stehen. \n";
}
}
}
return returnValue;
}
我忘记将 catch 块中的 returnValue 设置为 false。如果方法返回 true,_toastMessage 将获得一个新字符串。这就是我假设永远不会抛出异常的原因。给我带来的麻烦真的很抱歉。
非常感谢
【问题讨论】:
-
误导性标题。
int是原始类型,因此不存在int.parseInt()这样的东西。我也很想知道例如字符串“asdasda”的parseInt()结果是什么。因为你没有得到任何异常。 -
你确定它被调用了吗?您应该扩展您的问题,显示输出!
-
可能提示没有正确填充,所以没有命中。
-
为什么不让 int 字段只接受数字?
标签: java android string exception parseint