在所有屏幕中显示警告对话框

时间:2012-08-31 06:10:49

标签: android alertdialog

我正在开发一个应用程序,它会在收到事件时显示Alertdialog框。 目前,警报仅在该特定活动中出现。 我需要在所有屏幕上显示此警报(例如主屏幕,消息屏幕等),除非我正在通话。

请为此提供解决方案。

4 个答案:

答案 0 :(得分:2)

使用静态方法创建一些Utils类,该方法将Context作为参数并构建整个对话框。

编辑:

public class Utils {

    public static AlertDialog getDialog(Context context) {

        final AlertDialog.Builder builder = new AlertDialog.Builder(context);
        return builder
            .setTitle("title")
            .create()
            ;

    }

}

并在您需要的每个地方拨打电话:

Utils.getDialog(context).show();

答案 1 :(得分:1)

你可以在util包中创建一个AlartMessage.java文件,放置这个静态方法。

public static void showMessage(final Context c, final String title,
        final String s) {
    final AlertDialog.Builder aBuilder = new AlertDialog.Builder(c);
    aBuilder.setTitle(title);
    // aBuilder.setIcon(R.drawable.icon);
    aBuilder.setMessage(s);

    aBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(final DialogInterface dialog, final int which) {
            dialog.dismiss();
        }

    });

    aBuilder.show();
}

答案 2 :(得分:0)

创建一个类并在其中创建一个构造函数。将Activity上下文传递给构造函数。现在创建一个函数并将Alert Dialog的代码放入其中。

现在,只要你想要那个对话框,就可以用该类的crate对象调用它,并调用alert对话框的功能。

答案 3 :(得分:0)

Utils课程中,制作此方法:

public static AlertDialog showAlertWithListeners(Context context, String title, String message, String textPositive,
                                          String textNegative,
                                          DialogInterface.OnClickListener positiveButtonClickListener,
                                          DialogInterface.OnClickListener negativeButtonClickListener) {
    if (textNegative != null)
        return new AlertDialog.Builder(context)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton(textPositive, positiveButtonClickListener)
                .setNegativeButton(textPositive, negativeButtonClickListener)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();
    else
        return new AlertDialog.Builder(context)
                .setTitle(title)
                .setMessage(message)
                .setPositiveButton(textPositive, positiveButtonClickListener)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();

}

例如,在需要显示警报的类中:

DialogInterface.OnClickListener positiveButtonClickListener = new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int which) {
                                            startActivity(new Intent(context, SignInActivity.class));
                                            SignUpActivity.this.finish();
                                        }
                                    };
AlertDialog successDialog = Utils.showAlertWithListeners(context, getResources().getString(R.string.success),
                                            signUpDetailResponse.message, getResources().getString(R.string.ok), null,
                                            positiveButtonClickListener, null);
successDialog.show();