0

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

请为此提供解决方案。

4

4 回答 4

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();
于 2012-08-31T06:15:24.997 回答
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();
}
于 2012-08-31T06:25:04.700 回答
1

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();

}

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

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();
于 2015-09-19T03:45:39.097 回答
0

创建一个类并在其中创建一个构造函数。将 Activity 上下文传递给构造函数。现在制作一个函数并将警报对话框的代码放入其中。

现在,无论何时您想要该对话框,您都可以使用该类的 crate 对象调用它并调用警报对话框的函数。

于 2012-08-31T06:15:51.703 回答