Android IF/ElSE在SDK构建版本上不起作用

Android IF/ElSE在SDK构建版本上不起作用,android,if-statement,toast,Android,If Statement,Toast,我使用这个简单的条件检查来显示祝酒词,但没有一个显示: public void ShowVersion(){ //This works So I am sure the method is called: //Toast.makeText(this,"Method is called",Toast.LENGTH_LONG).show(); if (Build.VERSION.SDK_INT >= 23) {

我使用这个简单的条件检查来显示祝酒词,但没有一个显示:

 public void ShowVersion(){

         //This works So I am sure the method is called:
         //Toast.makeText(this,"Method is called",Toast.LENGTH_LONG).show();

        if (Build.VERSION.SDK_INT >= 23) {
            Toast.makeText(this,"Version Supported",Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this,"Version not supported",Toast.LENGTH_LONG).show();
        }
    }
if和else怎么可能都不起作用呢?

试试这个:

public void ShowVersion(){

     //This works So I am sure the method is called:
     //Toast.makeText(this,"Method is called",Toast.LENGTH_LONG).show();

    if (android.os.Build.VERSION.SDK_INT>=11) {
        Toast.makeText(this,"Version Supported",Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(this,"Version not supported",Toast.LENGTH_LONG).show();
    }
}
或者更优雅的方式是:

public void ShowVersion(){

     //This works So I am sure the method is called:
     //Toast.makeText(this,"Method is called",Toast.LENGTH_LONG).show();

    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        Toast.makeText(this,"Version Supported",Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(this,"Version not supported",Toast.LENGTH_LONG).show();
    }
}

主要问题是IF块内部出现异常。异常会打断IF/ELSE块。try/catch块有助于在类似情况下检测问题。

if和else怎么可能都不起作用?意思是吐司没有出现?是的我是说。toast在脱离if/else时工作,因此我认为这些条件都不是真的@blackbelt不可能不执行if/else的两个分支。如果使用调试器单步执行,您将看到其中一个被执行。可能还有另一个问题,显示更多相同的代码输出!我甚至可以土司Build.VERSION.SDK_INT,当土司在if/else块之外时得到26。第二种方法是否也给出了相同的结果?我知道这确实是在做sameyeah,但当一种方法失败时,你就要从头开始做其他事情。您的代码看起来正确,所以请尝试重新启动Android studio并使缓存无效。当我到家的时候,我会在我的膝盖上检查更多。它在我的膝盖上起作用。我真的不知道怎么了。