0

私はこのコードを持っています:

EditText value = ( EditText )findViewById( R.id.editbox );
Integer int_value = Integer.valueOf( value.getText().toString() );

EditTextに数字がある場合はうまく機能しますが、空の場合やテキストがある場合などにアプリケーションをFCします。

int_valueが数値であることを確認するにはどうすればよいですか?parseIntも試しましたが、同じ結果になりました。

4

5 に答える 5

4

xml ファイルに宣言を追加android:inputType="number"します。EditText

于 2012-06-12T11:16:19.590 に答える
3
  try {             
Integer int_value  = Integer.parseInt(value.getText().toString());
            } catch (NumberFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
于 2012-06-12T11:16:45.090 に答える
1

解析できない文字列がInteger'sへの入力として提供されるとvalueOfNumberFormatException. try catchそのような場合を処理するには、ブロックで囲むだけです。

Integer int_value = null;

try {
    int_value = Integer.valueOf(value.getText().toString());
} catch (NumberFormatException e) {
    // here you can handle the case where the text wasn't an integer
}

// carry on...
于 2012-06-12T11:20:55.457 に答える
0

これで試して、

editText.setOnFocusChangeListener(new OnFocusChangeListener(){
                @Override
                public void onFocusChange(View v,boolean hasFocus)
                {
                    //check for emptiness
                    if(editText.length()==0)
                    {
                        editText.setError(error_required);
                    }
                    else if(!numberValidation(editText.getText().toString()))
                    {
                        editText.setError("Only Numbers");
                    }
                }
            }
            );

main.xml に、

EditText tag, android:numeric="integer/number/decimal"
于 2012-06-12T11:29:09.667 に答える
0

xml で inputType="number" を設定し、コードで空の値を確認します

if(!"".equals(value.getText().trim()) && value.getText().trim()!= null) {

  //sure, input is not empty and is a number.

}
于 2012-06-12T11:23:55.373 に答える