我寫了一個函數,它的返回值類型爲int,在這個函數中我需要用兩個按鈕彈出一個AlertDialog。當單擊「是」按鈕時,該函數返回0,「否」按鈕返回-1。具有返回值的函數中的AlertDialog
public int Func(){
final AlertDialog d=new AlertDialog.Builder(mContext).setTitle("Warning").setCancelable(false).setMessage
(alert)
.setPositiveButton("Yes",mListener).setNegativeButton("No",mListener).create();
d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
d.show();
if(mWhich.getWhich()==-1) //the "yes" button was clicked
return 0;
else //the "no" button was clicked
return -1;
}
mWhich是用來記錄用戶的選擇
private DialogInterface.OnClickListener mListener =
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mWhich.setWhich(which);
}
};
類現在的問題是
if(mWhich.getWhich()==-1)
return 0;
else
return -1;
用戶單擊Yes或No按鈕之前執行的代碼,如何我應該怎麼做?
當運行當前代碼時按下是或否按鈕時得到的結果 –
全局取整數變量並在其中賦值(0或1),稍後檢查它的值。 –
警報對話框不是模態。 – Doomsknight