質問

次の擬似コードがあります。

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

問題は、アラートダイアログが表示されないことです。しかし、「Do Stuff B ...」で述べられているように、それは事態を起こします

AlertDialogが今見せている理由を誰かが知っていますか?

ありがとうございました!

役に立ちましたか?

解決

.create().show()が問題を解決する必要があります:)

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

そして、あなたがもうそれを必要としないとき、あなたはそれを却下することができます。

編集: ごめん。忘れた.create():)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top