AlertDialog почему-то показывает полноэкранный режим - PullRequest
0 голосов
/ 14 мая 2019

Я строю и показываю стандартный простой AlertDialog, нажимая кнопку в блоке навигации, с контекстом Activity, по неизвестной причине он показывает полноэкранный режим, но мне нужно стандартное диалоговое окно в центре.

Вот мой код (То жекод работает как и ожидалось в других действиях моего приложения):

new AlertDialog.Builder(mainActivity)
    .setTitle(mainActivity.getString(R.string.attention))
    .setPositiveButton(mainActivity.getString(R.string.exit), (dialog, which) -> {
        dialog.dismiss();
        mainActivity.finish();
    })
    .setNegativeButton(mainActivity.getString(R.string.cancel), (dialog, which) -> {
        dialog.dismiss();
    })
    .setMessage(mainActivity.getString(R.string.warnLogout))
    .create()
    .show();

Ответы [ 2 ]

1 голос
/ 14 мая 2019

Проблема была в неправильном импорте: я недавно перенес проект на AndroidX, и когда я писал логику AlertDialog, я по ошибке выбрал устаревший импорт. Похоже, что никаких ошибок и предупреждений не отображалось, и кнопки работали, как и ожидалось, но в моем случае это выглядело как неправильное диалоговое окно полноэкранного макета:

НЕПРАВИЛЬНО:

import android.app.AlertDialog;

RIGHT:

import androidx.appcompat.app.AlertDialog;
0 голосов
/ 14 мая 2019

Пожалуйста, попробуйте этот код для диалога предупреждения.

 new AlertDialog.Builder(this)
                .setTitle("Alert")
                .setMessage("Hello This is Alert Dialog.")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.dismiss();
                    }
                }).setNegativeButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        }).show();

Вывод: enter image description here

...