我的应用中有两个微调器。我希望如果我从微调器1中选择“first”选项并从微调器2中选择“second”选项,则执行该操作。但它显示“NUMBERFORMATEXCEPTION”。
这是代码
if (((spinner.getItemAtPosition(pos).toString()=="first" &&
(s2.getItemAtPosition(id).toString()=="second"))))
{
tv.setText(String.valueOf(gmtomilli(x)));
}
此代码有错误,如果我省略此代码,则应用程序正常工作,无需操作
答案 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
,我可能认为pos
或id
属于String
类型生成NumberFormatException
。
编辑2:
根据你的评论:
float x=Float.parseFloat(String.valueOf(et.getText()));
您的getText()
正在返回无法实际解析为String
的{{1}}。尝试检查内容是否实际为float
格式的float
。
此外,在解析之前使用String
以确保您的String.trim()
不包含任何生成String
的前导或尾随空格。