Search code examples
androiddialogandroid-layoutparams

Custom Dialog not showing View


I made a simple project if button click custom dialog appears but when I think something is missing in it? Toast message appears when i click on button but dialog not showing and also no error occurs and app not crash. source code

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();
             }
         });
     }

Solution

  • You forgot to call my_dialog.show() to display your 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();
     }