2012-12-30 2 views
1

안드로이드의 버전을 확인하고 하나 또는 다른 경고 대화 상자를 실행하려면 사용하십시오. 이 코드를 사용하면 "빌더"가 마지막에 공유되지 않습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?sdk 버전을 확인하십시오.

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

으로 @Eric 점 출력, 간단한 elseelse if 때문에 충분이 기본적으로보다 반대 조건을 테스트하고이 같은

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

단순 :

내 코드가

if.

+0

아마도 'else if'를 'else'로 바꾸어야합니다 (명확성을 위해). 그렇지 않으면 +1. – Eric

+0

@ K-ballo, 코드, builder.setView (view) .create(); 및 기타 빌더 바닥을 사용할 수없는 경우 (로컬 변수 빌더가 초기화되지 않았을 수 있음) –

+0

@Pol Hallen : 빌더는 항상 초기화되며 조건은 반대입니다. 하지만 'else if'를 하나의 'else'로 바꾸면 바보 컴파일러는 불평하지 않을 것입니다 ... –

관련 문제