0

我的应用程序中有两个微调器。我希望如果我从微调器 1 中选择“第一”选项,从微调器 2 中选择“第二”选项,则执行该操作。但它显示“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,我可能相信要么pos或要么idString生成NumberFormatException.


编辑2:

根据您的评论:

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

getText()返回的 aString无法实际解析为 a float。尝试检查内容是否实际上是float格式String。此外,String.trim()在解析之前使用以确保您String不包含任何生成NumberFormatException.

于 2012-06-21T09:12:31.567 回答