0

アプリに2つのスピナーがあります。スピナー1からオプション「first」を選択し、スピナー2からオプション「second」を選択すると、アクションが実行されるようにしたいと思います。ただし、「NUMBERFORMATEXCEPTION」と表示されます。

これがコードです

  if (((spinner.getItemAtPosition(pos).toString()=="first" &&        
(s2.getItemAtPosition(id).toString()=="second"))))
   {

       tv.setText(String.valueOf(gmtomilli(x)));
   }

このコードにはエラーがあります。このコードを省略すると、アプリはアクションなしで正常に動作します

4

1 に答える 1

4

Stringを使って比較しますequals

spinner.getItemAtPosition(pos).toString()=="first"

代わりに次を使用します。

spinner.getItemAtPosition(pos).toString().equals("first")

同様に:

s2.getItemAtPosition(id).toString()=="second"

代わりに次を使用します。

s2.getItemAtPosition(id).toString().equals("second")

詳細については、これをお読みください。

==値ではなく参照を比較します。あなたの場合、参照の等価性ではなく、値の等価性をチェックしたいと考えています。


編集:

あなたのコードが を生成していると述べたのでNumberFormatException、私はおそらく または のいずれposidが をString生成するタイプであると信じていますNumberFormatException


編集2:

あなたのコメントによると:

float x=Float.parseFloat(String.valueOf(et.getText())); 

あなたは、実際には に解析できない をgetText()返しています。コンテンツが実際にフォーマットされているかどうかを確認してください。さらに、解析前に使用して、 を生成している先頭または末尾の空白が含まれていないことを確認します。StringfloatfloatStringString.trim()StringNumberFormatException

于 2012-06-21T09:12:31.567 に答える