web-dev-qa-db-fra.com

Comment créer une boîte de dialogue modale dans android

je veux créer une boîte de dialogue modale pour mon application.

donc lorsque la boîte de dialogue modale s'ouvre, les autres activités sont bloquées. aucun événement n'est fait comme une pression sur le bouton Retour ou une pression sur le bouton Accueil.

et mettez deux bouton d'option dans cette boîte de dialogue annuler et ok.

Je vous remercie...

15
Jatin Patel

Il existe de nombreux types de Dialogs dans Android. Veuillez consulter Dialogues . Je suppose que ce que vous cherchez est quelque chose comme AlertDialog. Voici l'exemple de la façon dont vous pouvez implémenter le bouton BackPress.

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

}
28
Ye Lin Aung

Use peut utiliser setCancellable (false); setCanceledOnTouchOutside (false); pour la boîte de dialogue elle-même, cela devrait empêcher la fermeture de cette boîte de dialogue par BACK et en tapant à l'extérieur de la boîte de dialogue.

Vous ne pouvez pas remplacer le bouton HOME.

9
IuriiO

Essaye ça::

Vous devez créer la mise en page que vous souhaitez afficher en popup. vous pouvez créer une mise en page XML et l'utiliser comme ceci:

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

Vous pouvez également fournir des événements de clic de bouton comme celui-ci:

ImageButton btnChoose = (ImageButton) layout.findViewById(R.id.btnChoose);
            btnChoose.setOnClickListener(new OnClickListener()  {

                @Override
                public void onClick(View v) {
}
});

et afficher cette fenêtre contextuelle comme ceci: ici, vous voulez l'afficher en cliquant sur le bouton, puis la vue du bouton sera là.

 popupWindow.showAtLocation(anyview,Gravity.CENTER, 0, 0);
6
Armaan Stranger

Essayez comme ci-dessous:

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

Pour l'événement Home Key:

Non, il n'est pas possible d'obtenir l'événement de touche Accueil dans Android. À partir de la documentation du code de touche Home: http://developer.Android.com/reference/Android/view/KeyEvent.html#KEYCODE_HOME

public static final int KEYCODE_HOME

Constante de code de touche: touche Accueil. Cette clé est gérée par le framework et n'est jamais fournie aux applications .

5
GrIsHu