代码之家  ›  专栏  ›  技术社区  ›  Ali Sheikhpour

IF/ElSE不适用于SDK构建版本

  •  0
  • Ali Sheikhpour  · 技术社区  · 6 年前

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

     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();
            }
        }
    

    怎么可能没有 如果 其他的 工作?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Ali Sheikhpour    6 年前

    主要问题是IF块内部出现异常。例外情况中断 IF / ELSE 封锁。一个 try/catch 块可以帮助在类似情况下检测问题。

        2
  •  -1
  •   Jacob Celestine Riya Solanki    6 年前

    试试这个:

    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();
        }
    }