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" >

Javaコード:

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 条件を置きます。このように、2桁目を入力するまで解析されません。

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 に答える