我的应用程序中有两个微调器。我希望如果我从微调器 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
,我可能认为pos
或id
是生成NumberFormatException
String
类型。
编辑2:
根据您的评论:
float x=Float.parseFloat(String.valueOf(et.getText()));
您的getText()
返回一个无法实际解析为float
的String
。尝试检查内容是否实际上是String
格式的float
。此外,在解析之前使用String.trim()
,以确保您的String
不包含生成NumberFormatException
的任何前导或尾随空格。