Глобальный диалог - как? - PullRequest
0 голосов
/ 25 октября 2018

Привет, ребята. Я создал push-уведомление с помощью firebase и хочу установить для диалогового окна данные, что это должен быть глобальный диалог.Когда приходит уведомление, приложение должно показывать в диалоге каждое действие.Пожалуйста, помогите мне создать глобальный диалог. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Создайте статическую функцию внутри глобального класса, чтобы к ней можно было получить доступ из любого другого действия.Возможно, вам поможет следующий код.

    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();
            }
        };
0 голосов
/ 25 октября 2018

создайте BaseActivity , который должен быть расширен всеми Activity , напишите LocalBroadcast слушатель внутри вашего класса BaseActivity, который listen Широковещательные рассылки от службы FireBaseMessaging позже создают диалог для отображения сообщения в вашем классе BaseActivity, с помощью которого вы можете отображать диалог по всем действиям (которые расширяют базовые действия)

...