2014-10-04 126 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