2014-10-04 212 views
-2

當按下後退按鈕時,我創建了一個用於退出應用程序的警告對話框。我想在Alertdialog中應用按鈕聚焦和按鈕按下是或否按鈕。我已經在我的應用程序中爲其他按鈕應用了按鈕聚焦和按鈕按下。Android - 如何在alertdialog中按下按鈕並按下按鈕是或否按鈕

public void onBackPressed() { 
    // TODO Auto-generated method stub 
    createDialog(); 
} 

private void createDialog() { 
    // TODO Auto-generated method stub 
    AlertDialog.Builder alertdlg = new AlertDialog.Builder(this); 
    alertdlg.setMessage("Are you sure you want to exit?"); 
    alertdlg.setCancelable(false); 
    alertdlg.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 

      Myactivity.super.onBackPressed(); 

     } 
    }); 
    alertdlg.setNegativeButton("No", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 

     } 
    }); 

    alertdlg.create().show(); 

} 

回答

0

你可以用下面的代碼:

// your code 

AlertDialog dialog = alertdlg.create(); 
dialog.show(); 

Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE); 
if(b != null) 
{ 

int sdk = android.os.Build.VERSION.SDK_INT; 
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) { 
     b.setBackgroundDrawable(getResources().getDrawable(R.drawable.your_selector)); 
} else { 
     b.setBackground(getResources().getDrawable(R.drawable.your_selector)); 
    } 
} 

,或者可以創建自定義視圖,並顯示

更多信息,你可以看到This question

+0

感謝。它工作,但它給出了警告「從類型視圖的方法setBackgroundDrawable(可繪製)已棄用」如何解決這個問題。 – daas12 2014-10-04 12:15:21

+0

是的,該方法已被棄用,因爲我用if-else方法來檢查sdk的版本,如果你的minSdkVersion大於JELLY_BEAN的版本,你可以刪除它,但不用擔心, – 2014-10-04 12:18:22