Пользовательский диалог не показывает вид
Я сделал простой проект, если появляется пользовательское диалоговое окно при нажатии кнопки, но когда мне кажется, что в нем чего-то не хватает? Тост сообщение появляется, когда я нажимаю на кнопку, но диалоговое окно не отображается, а также не возникает ошибка и приложение не падает. исходный код
private void layout() {
toast("save");
LayoutInflater dialoglayout = LayoutInflater.from(EditImageActivity.this);
View dialogView = dialoglayout.inflate(R.layout.save_image_dialoge,null);
my_dialog = new Dialog(EditImageActivity.this, R.style.CustomAlertDialog);
my_dialog.setContentView(dialogView);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(my_dialog.getWindow().getAttributes());
lp.width = (int)(getResources().getDisplayMetrics().widthPixels*0.90);
lp.height = (int)(getResources().getDisplayMetrics().heightPixels*0.90);
my_dialog.getWindow().setAttributes(lp);
final Button cancel = dialogView.findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//cancel(true);
my_dialog.dismiss();
}
});
}
2 ответа
Решение
Ты забыл позвонить my_dialog.show()
чтобы показать ваш my_dialog
private void layout() {
toast("save");
LayoutInflater dialoglayout = LayoutInflater.from(EditImageActivity.this);
View dialogView = dialoglayout.inflate(R.layout.save_image_dialoge,null);
my_dialog = new Dialog(EditImageActivity.this, R.style.CustomAlertDialog);
my_dialog.setContentView(dialogView);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(my_dialog.getWindow().getAttributes());
lp.width = (int)(getResources().getDisplayMetrics().widthPixels*0.90);
lp.height = (int)(getResources().getDisplayMetrics().heightPixels*0.90);
my_dialog.getWindow().setAttributes(lp);
final Button cancel = dialogView.findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//cancel(true);
my_dialog.dismiss();
}
});
my_dialog.show();
}
Вызовите этот метод также
my_dialog.show();
ваш метод будет таким
private void layout() {
toast("save");
LayoutInflater dialoglayout = LayoutInflater.from(EditImageActivity.this);
View dialogView = dialoglayout.inflate(R.layout.save_image_dialoge,null);
my_dialog = new Dialog(EditImageActivity.this, R.style.CustomAlertDialog);
my_dialog.setContentView(dialogView);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(my_dialog.getWindow().getAttributes());
lp.width = (int)(getResources().getDisplayMetrics().widthPixels*0.90);
lp.height = (int)(getResources().getDisplayMetrics().heightPixels*0.90);
my_dialog.getWindow().setAttributes(lp);
final Button cancel = dialogView.findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//cancel(true);
my_dialog.dismiss();
}
});
my_dialog.show();
}