如何创建全局警报对话框

时间:2014-07-26 09:08:15

标签: android alertdialog android-alertdialog

我想为我的一些活动制作一个“全局”警报对话框。我的意思是我创建了一个扩展Activity的类,它还为警报对话框创建了一个带有两个参数(消息和标题)的函数。

public class MyDialogAlert extends Activity {

public void createDialog(String title, String message)
{
    new AlertDialog.Builder(this)
    .setTitle(title)
    .setMessage(message)
    .setPositiveButton("yes", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            //(e.g) open another activity
        }
    })
    .setNegativeButton("no", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            //some stuff ..
        }
    })
    .show();
}

}

如何在不同的活动中调用此函数并将其更改为负面和正面按钮,以执行除上述类中最初定义的操作之外的其他操作?

感谢您的帮助:)

2 个答案:

答案 0 :(得分:5)

您可以创建单独的类,其中包含用于在任何活动上显示对话框的静态方法

public class DialogCaller {

public static void showDialog(Context context,String title,String message, 
        DialogInterface.OnClickListener onClickListener) {

    AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    dialog.setTitle(title);
    dialog.setMessage(message);
    dialog.setPositiveButton("Ok",onClickListener);
    dialog.setNegativeButton("Cancel",null);
    dialog.show();
}
}

调用方法就像这样

   DialogCaller.showDialog(this,"title","message",new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });

答案 1 :(得分:0)

根据FinalDark's的工作答案和Faisal Qayyum问题,我希望它可以帮助某人如何关闭对话框并添加否定按钮侦听器

在调用方法中,添加开关大小写:

DialogCaller.showDialog(this,"title","message",new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
           switch (option) {
             case DialogInterface.BUTTON_POSITIVE:
                  // Add your code if it positive button
                  break;

             case DialogInterface.BUTTON_NEGATIVE:
                  // Add your code if it negative button
                  break;
          }
        }
    });

如果您想在单击否定按钮时添加侦听器,只需将null更改为侦听器:

dialog.setNegativeButton("Cancel",onClickListener);