How to create modal dialog box in android

后端 未结 4 1184
野的像风
野的像风 2021-02-01 19:53

i want create modal dialog box for my application.

so when modal dialog box open the other activities are blocked. no event are done like back button press or home butto

相关标签:
4条回答
  • 2021-02-01 20:30

    Use can use setCancellable(false); setCanceledOnTouchOutside(false); for the dialog itself, that should stop that dialog from closing by BACK and by tapping outside the dialog.

    You can't override the HOME button.

    0 讨论(0)
  • 2021-02-01 20:31

    There are many kind of Dialogs in Android. Please take a look at Dialogs. I guess what you are looking for is something like AlertDialog . This is the example of how you can implement on BackPress button.

    @Override
    public void onBackPressed() {
        AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setTitle("Do you want to logout?");
        // alert.setMessage("Message");
    
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                //Your action here
            }
        });
    
        alert.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });
    
        alert.show();
    
    }
    
    0 讨论(0)
  • 2021-02-01 20:46

    Try out as below :

     AlertDialog.Builder builder = new AlertDialog.Builder(this);
     builder.setMessage("Are you sure you want to exit?")
      .setCancelable(false)
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            MyActivity.this.finish();
       }
     })
     .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
       }
    });
    AlertDialog alert = builder.create();
    

    For the Home Key event :

    No, it is not possible to get the Home key event in android. From the documentation of the Home keycode: http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME

    public static final int KEYCODE_HOME

    Key code constant: Home key. This key is handled by the framework and is never delivered to applications.

    0 讨论(0)
  • 2021-02-01 20:51

    Try this::

    You need to create layout that you want to show in popup. you can create layout XML and use it like this:

    LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);  
                View layout = layoutInflater.inflate(R.layout.new_popup_layout, null);  
                final PopupWindow popupWindow = new PopupWindow(
                        layout, 
                           LayoutParams.WRAP_CONTENT,  
                                 LayoutParams.WRAP_CONTENT);
    

    You can also provide click events of button like this:

    ImageButton btnChoose = (ImageButton) layout.findViewById(R.id.btnChoose);
                btnChoose.setOnClickListener(new OnClickListener()  {
    
                    @Override
                    public void onClick(View v) {
    }
    });
    

    and show this popup like this: here you want to show this on button click then button view will be there.

     popupWindow.showAtLocation(anyview,Gravity.CENTER, 0, 0);
    
    0 讨论(0)
提交回复
热议问题