2017-04-25 86 views
0

我使用一个单独的非活性类此代码为我AlertDialogsAndroid的覆盖AlertDialog的onClick

class Utility { 
static void alertDialogShow(Context context, String title, String message) { 
    final AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
    alertDialog.setTitle(title); 
    alertDialog.setMessage(message); 
    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 
    alertDialog.show(); 
} 

我想重写的onClick我在活动课中的一个,但我不知道怎么办。

+0

使用界面获得点击您的活动 –

+0

或者您可以使用自定义对话框 –

回答

3

您可以将click监听器传递给该方法,并为您的Activity使用不同的监听器。您将有两种方法,一种与默认版本和其他与OnClickListener定制:

class Utility { 
    static void alertDialogShow(Context context, String title, String message, OnClickListener listener) { 
     final AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
     alertDialog.setTitle(title); 
     alertDialog.setMessage(message); 
     alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", listener); 
     alertDialog.show(); 
    } 

    static void alertDialogShow(Context context, String title, String message) { 
     alertDialogShow(context, title, message, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       }); 
    } 
} 
0

如何传递DialogInterface.OnClickListener到方法的参数。

static void alertDialogShow(Context context, String title, String message,DialogInterface.OnClickListener onClickListener) { 
    final AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
    alertDialog.setTitle(title); 
    alertDialog.setMessage(message); 
    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", onClickListener); 
    alertDialog.show(); 
}