2016-06-21 5 views
0

EditTextの入力がnullであるかどうかを確認しようとしています。"inputType = number"がnullのEditTextを確認してください。

if(editTextSum.getText().toString() != null) { 
    userStartingBalance = Integer.valueOf(editTextSum.getText().toString()); 
} else { 
    userStartingBalance = 0; 
} 

ここで、userStartingBalanceはIntegerタイプです。

しかし、私は

int" "を変換できませんというエラー毎回取得しています、と私は何も入力しない場合は、行が「もしケース」に指摘されます。

なぜそれ以外の場合はありませんか?

回避策を教えてください。

+0

一つの問題は、あなたが指摘するように、 'userStartingBalance'は、' int'であるということです。 'Integer'は' int'型です。それでも 'valueof()'はパラメータとして 'int'をとりますが、あなたは' toString() 'を持っています。だから* 'int'を必要とするパラメータに' string'を渡しています。* https://developer.android.com/reference/java/lang/Integer.htmlを参考にしてください。 – NonCreature0714

答えて

2

あなたが適切にあなたのEditTextは、単にその中にはコンテンツがありませんした場合を処理していません。

この場合、editTextSum.getText().toString()はnullを返しません(実際にはnullにはなりません)。代わりに、空の文字列を返します。

代わりにeditTextSum.getText().toString().isEmpty()を試してみるとよいでしょう。 isEmpty()は、長さが0の場合にtrueを返します。

1

試してみてください。

Integer.parseInt(editTextSum.getText().toString())

0

なぜそれ以外の場合はありませんか?

NullでToString()を呼び出しているためです。フィールドに値が存在しない場合はNULLを設定し、toString()メソッドを実行しようとするとこのエラーが発生します。値を取得する前にNullチェックを行います。

回避策

if(editTextSum.getText() != null) 
{ 
    userStartingBalance = Integer.parseInt(editTextSum.getText().toString()); 
} 
else 
{ 
    userStartingBalance =0; 
} 
関連する問題