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



我的应用程序中有两个微调器。我希望如果我从微调器 1 中选择选项"第一",从微调器 2 中选择选项"第二",然后执行操作。但它显示"数字格式例外"。

这是代码

  if (((spinner.getItemAtPosition(pos).toString()=="first" &&        
(s2.getItemAtPosition(id).toString()=="second"))))
   {
       tv.setText(String.valueOf(gmtomilli(x)));
   }
此代码

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

使用 equals String 进行比较。

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

而是使用:

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

同样适用于:

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

而是使用:

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

阅读此内容以获取更多信息。

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


编辑:

既然你提到你的代码正在生成NumberFormatException,我可能认为posid是生成NumberFormatException String类型。


编辑2:

根据您的评论:

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

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

最新更新