全局对话框-如何操作?

时间:2018-10-25 12:52:33

标签: android dialog global

大家好,我使用firebase创建了推送通知,我想将数据设置为应该为全局对话框的对话框。通知到达时,应用程序应在每个活动中显示对话框。请帮助我创建全局对话框。谢谢!

2 个答案:

答案 0 :(得分:0)

创建一个 BaseActivity ,所有 Activity 都需要对其进行扩展, 在BaseActivity类中编写一个 LocalBroadcast 侦听器,然后从FireBaseMessaging服务中收听广播创建一个对话框,以在BaseActivity类中显示该消息,从而可以在所有对话框上显示对话框活动(扩展基本活动)

答案 1 :(得分:0)

在全局类中创建一个静态函数,以便可以从任何其他活动进行访问。可能以下代码可以为您提供帮助。

    public class AppDialog {
       public static void showAppSettingDialog(Context context, String title, String msg,
                                            DialogInterface.OnClickListener positiveClick,
                                            DialogInterface.OnClickListener negativeClick) {
        AlertDialog alertDialog = null;
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
        // set title
        alertDialogBuilder.setTitle(title);
        // set dialog message
        alertDialogBuilder
                .setMessage(msg)
                .setCancelable(false)
                .setPositiveButton(context.getText(R.string.txt_countinue), positiveClick)
                .setNegativeButton(context.getText(R.string.txt_not_now), negativeClick);

        // create alert dialog
        alertDialog = alertDialogBuilder.create();
        alertDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
        // show it
        alertDialog.show();
    }
}

调用以下函数:

 AppDialog.showAppSettingDialog(HomeActivity.this,
                    getString(R.string.txt_read_permission_title), getString(R.string.txt_read_permission),
                    positiveClick, negativeClick);

您可以通过单击“单击”按钮并按如下方式获取来在单个屏幕/活动中单击:

    positiveClick = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
              // your positive click
            }
        };

        negativeClick = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            // your negative click
                dialogInterface.dismiss();
            }
        };