繁体   English   中英

带有负数的EditText和TextWatcher

[英]EditText with negative number and TextWatcher

输入负整数到我的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" >

Java代码:

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

我假设我的textWatcher出现问题,并且在每次按下键盘时“发送”我的输入,因此当我尝试输入-12时,它会在我设法完成之前发送“-”代表“解析” ,这就是为什么我的应用崩溃的原因,对吗? 有人知道如何解决吗?

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

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

}

我遇到了同样的问题。 我在分析之前放置了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  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM