Отображение AlertDialog, расширяющего DialogFragment или из метода в onCreateView () - PullRequest
1 голос
/ 07 августа 2020

Черт возьми,

Я хотел бы знать, предпочтительнее ли раздувать фрагмент, расширяющий класс DialogFragment, или отображать диалоговое окно с помощью простого метода, добавленного в onCreateView ()?

Вот фрагмент для второго решения из inte rnet (на основе действия, а не фрагмента):

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    positiveDialog = findViewById(R.id.btnPositiveDialog);
    negativeDialog = findViewById(R.id.btnNegativeDialog);

    positiveDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showAlertDialog(R.layout.dialog_postive_layout);
        }
    });

    negativeDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showAlertDialog(R.layout.dialog_negative_layout);
        }
    });

}

private void showAlertDialog(int layout){
    dialogBuilder = new AlertDialog.Builder(MainActivity.this);
    View layoutView = getLayoutInflater().inflate(layout, null);
    Button dialogButton = layoutView.findViewById(R.id.btnDialog);
    dialogBuilder.setView(layoutView);
    alertDialog = dialogBuilder.create();
    alertDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    alertDialog.show();
    dialogButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            alertDialog.dismiss();
        }
    });
}

}

Меня беспокоит только то, что я использую фрагмент среди navigationDrawer, где я хочу чтобы отобразить мой alertDialog (1 editText и 2 кнопки), и я хотел бы запретить пользователю закрывать диалоговое окно с помощью кнопки возврата или щелчка вне диалогового окна.

Большое спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...