Черт возьми,
Я хотел бы знать, предпочтительнее ли раздувать фрагмент, расширяющий класс 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 кнопки), и я хотел бы запретить пользователю закрывать диалоговое окно с помощью кнопки возврата или щелчка вне диалогового окна.
Большое спасибо за помощь