2012-12-30 127 views
1

我需要檢查版本的android和使用如果運行一個或其他alertdialog。使用這段代碼,如果不共享「構建器」底部的最後部分。什麼是最好的方式來做到這一點?檢查sdk版本,如果

我的代碼:

int sdk = android.os.Build.VERSION.SDK_INT; 
     if(sdk < android.os.Build.VERSION_CODES. HONEYCOMB) 
     { 
      AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     } 
     else if (sdk >= android.os.Build.VERSION_CODES. HONEYCOMB) 
     { 
      AlertDialog.Builder builder = new AlertDialog.Builder(this, animazione); 
     } 

     builder.setView(view).create(); 
     TextView text=(TextView) findViewById(R.id.infoView1); 
     builder.setCancelable(false); 
     builder.setPositiveButton("Chiudi", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        tips = 0; 
        dialog.cancel(); 
      } 
      }); 
     builder.show();  
    } 

回答

7

簡單,這樣的:

AlertDialog.Builder builder; 
if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) 
{ 
    builder = new AlertDialog.Builder(this); 
} 
else 
{ 
    builder = new AlertDialog.Builder(this, animazione); 
} 

作爲@Eric指出,一個簡單的else由於else if足以基本上超過所述相反的條件測試if

+0

應該把這個'else if'變成'else'(爲了清晰起見)。否則爲+1。 – Eric

+0

@ K-ballo,用你的代碼,builder.setView(view).create();和其他生成器底部如果不可用(局部變量生成器可能尚未初始化) –

+0

@Pol Hallen:'builder'始終初始化,條件相反。但用一個'else'替換'else if',愚蠢的編譯器不會抱怨... –