0

我在将负整数输入到我的 EditText 时遇到问题,当我这样做时,我得到一个错误的09-12 06:26:42.025: E/AndroidRuntime(18247): java.lang.NumberFormatException: Invalid int: "-" xml 文件:

<EditText
        android:id="@+id/downAndDistanceStarting"
        android:layout_width="180dp"
        android:layout_height="match_parent"
        android:ems="10"
        android:inputType="numberSigned"
        android:selectAllOnFocus="true"
        android:textSize="@dimen/enterText" >

爪哇代码:

end = (EditText) findViewById(R.id.downAndDistanceEnding);
public void afterTextChanged(Editable s) {
int w = Integer.parseInt(end.getText().toString());
}

我假设我的 textWatcher 有问题,它在每次键盘“按下”后“发送”我的输入,所以当我尝试输入 -12 时,它会在我设法完成之前发送“-”用于“解析” ,这就是我的应用程序崩溃的原因,对吗?任何人都知道如何解决它?

4

2 回答 2

1

我遇到了同样的问题。我在解析之前放置了一个 if 条件。像这样,所以在你输入第二个数字之前它不会解析。

end = (EditText) findViewById(R.id.downAndDistanceEnding);
public void afterTextChanged(Editable s) {
  if(!end.getText().toString().equals("-"));
  {
    int w = Integer.parseInt(end.getText().toString());
  } else { //do something  }
}
于 2016-01-08T10:04:40.700 回答
0

是的,你是对的。将您的代码包装在 try/catch 块中,然后,当接收到 - 时,它将抛出 NumberFormatException 并被捕获。

try
{
int w = Integer.parseInt(end.getText().toString());
}catch(NumberFormatException e)
{

}
于 2012-09-12T05:39:02.297 回答