对于我的地区科学展,我正在为Android制作速度计应用程序,我想设置速度限制。这是我遇到问题的代码:
public void onLocationChanged(Location location) {
TextView txt = (TextView) this.findViewById(R.id.textView1);
if (location==null)
{
txt.setText("-.- km/h");
}
else if (location == 1.50)
{
txt.setText("Warning");
}
else
{
float nCurrentSpeed = location.getSpeed();
txt.setText(nCurrentSpeed*3.6 + " km/h");
}
}
我想这样做,当速度为1.50 km / h时,它会将文本更改为“警告”。我一直在Incompatible operand types Location and double
。我试过这个
else if (nCurrentSpeed == 1.50)
{
txt.setText("Warning");
}
但它仍然给我同样的错误,但修改了Incompatible operand types float and double
。有没有关于如何解决这个问题或如何为速度表创建速度限制的提示?
答案 0 :(得分:2)
location
对象不仅仅是一个原始对象,而且这里的内容不知道。
但是根据以后的代码,您显示它已
location.getSpeed()
所以将代码更改为
else if (location.getSpeed() == 1.50)
我还建议您使用>= 1.5
答案 1 :(得分:1)
不应该像
那样public void onLocationChanged(Location location) {
TextView txt = (TextView) this.findViewById(R.id.textView1);
if (location==null)
{
txt.setText("-.- km/h");
}
else if (location.getSpeed() >= 1.50f)
{
txt.setText("Warning");
}
else
{
float nCurrentSpeed = location.getSpeed();
txt.setText(nCurrentSpeed*3.6 + " km/h");
}
}
即。你需要比较location.getSpeed()和1.5,而不是整个位置对象