如何在两个微调器上执行项目选择的基础条件?

时间:2012-06-21 09:11:05

标签: android spinner

我的应用中有两个微调器。我希望如果我从微调器1中选择“first”选项并从微调器2中选择“second”选项,则执行该操作。但它显示“NUMBERFORMATEXCEPTION”。

这是代码

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

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

此代码有错误,如果我省略此代码,则应用程序正常工作,无需操作

1 个答案:

答案 0 :(得分: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")

阅读this了解详情。

==比较参考,而不是值。在您的情况下,您要检查值相等,而不是引用相等。


编辑:

由于您已经提到您的代码正在生成NumberFormatException,我可能认为posid属于String类型生成NumberFormatException


编辑2:

根据你的评论:

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

您的getText()正在返回无法实际解析为String的{​​{1}}。尝试检查内容是否实际为float格式的float。 此外,在解析之前使用String以确保您的String.trim()不包含任何生成String的前导或尾随空格。