Question

J'ai un pseudo-code suivant.

public boolean onContextItemSelected(MenuItem aItem) {
      switch(aItem.getItemId()) {
           case A: {
                new AlertDialog.Builder(this)
                  .setIcon(android.R.drawable.ic_dialog_alert)
                  .setTitle("Delete")
                  .setMessage("Delete?")
                  .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                       @Override
                       public void onClick(DialogInterface dialog, int which) {
                             // do stuff A...
                       }
                  });

                  // do stuff B...

                  return true;
           }
      }
  }

Le problème est qu'il ne montre jamais la boîte de dialogue d'alerte. Cependant, cela fait les choses comme indiqué dans "Do Stuff B ..."

Est-ce que quelqu'un sait pourquoi AlertDialog affiche maintenant?

Merci!

Était-ce utile?

La solution

vous devez .Create () .show () résoudra le problème :)

AlertDialog dialog = new AlertDialog.Builder(this)
              .setIcon(android.R.drawable.ic_dialog_alert)
              .setTitle("Delete")
              .setMessage("Delete?")
              .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int which) {
                         dialog.dismiss();
                   }
              }).create();
dialog.show();

Et quand vous n'en avez plus besoin, vous pouvez le rejeter ().

Éditer: Pardon. oublié .Create () :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top