的Android双倍返还

问题描述:

http://imgur.com/DzTRV2D的Android双倍返还

在Android应用程序,我有这样的代码下面

private boolean isSpinnerNotChoose(Spinner spinner) 
{ 
    if(spinner.getSelectedItem().toString().equals("")) 
    { 
     return false; 
    } 
    return true; 
} 

但即使条件是完成了它返回FALSE,后来反正debbugger先进入多次尝试后继续回真(如果有东西在括号后面被跳过,但是返回true总会被完成,链接是图片如何完成后的样子。

任何人都可以回答我这种情况吗?

在此先感谢:)

+0

我记得我的Eclipse调试器击中步骤步进直通代码的时候,尤其是返回statemens /右括号是'实际上不是executed'。只需验证你的代码返回正确的值(通过在调用和结果的方法上放置断点)并忽略不正确的可视化调试步骤。 – kiruwka 2014-11-20 20:04:55

+0

嗯,你有权利 - 清理项目后,其显示步骤'返回true',但后来它的返回false无论如何:)谢谢你也:) – 2014-11-20 20:15:48

更好地使用布尔值并返回布尔值一次。

布尔值初始设置为true
如果不匹配,它将保持为true
如果匹配,它将更改为false

然后返回布尔值(如果没有匹配发生则为true,如果匹配则返回false)。
没有鬼反应。

我还添加了一个trim(),以删除最终的尾随空格。

尝试:

private boolean isSpinnerNotChoose(Spinner spinner) 
{ 
    boolean myValue = true; // default return value 
    if(spinner.getSelectedItem().toString().trim().equals("")) 
    { 
     myValue = false; 
    } 
    return myValue; // return once and for all 
} 
+0

它甚至发生与其他声明。如果我像你一样做了它的工作,但如果它是返回声明它不应该立即返回? – 2014-11-20 19:59:23

+0

也许这个字符串不是“”。尝试**修剪它,去掉最终的尾随空格。 – 2014-11-20 20:00:37

+0

该字符串是“”,因为它通过语句和它的内部输入,但如果在返回true之后它总是返回false并且不理解为什么。 – 2014-11-20 20:03:37