3

ゲームに再起動オプションがあります。ただし、問題は、再起動を押すと、既存のアクティビティに開いているアラートダイアログが表示される可能性があることです。

再起動を押すと、開いているすべてのAlertdialog(存在する場合)を閉じたいと思います。開いたアラートダイアログへの参照はありません(o、1、または複数の場合があります)。

アクティビティで開いているすべてのアラートダイアログを、参照せずにいつでも却下できる方法はありますか?

4

1 に答える 1

8

まず、すべてのダイアログをメンバー変数に割り当てることができます。

private Vector<AlertDialog> dialogs = new Vector<AlertDialog>();

@Override
protected Dialog onCreateDialog(int id) {
  switch (id) {
    case DIALOG_ALERT:
      Builder builder = new AlertDialog.Builder(this);
      ...
      AlertDialog dialog = builder.create();
      dialogs.add(dialog);
      dialog.show();
   }
   return super.onCreateDialog(id);
}

その後、ダイアログのメソッドを使用して、ダイアログが表示されているかどうかをテストできます(クラスhttp://developer.android.com/reference/android/app/AlertDialog.htmlisShowing()から継承されたメソッドを確認してください)。android.app.Dialog

public void closeDialogs() {
   for (AlertDialog dialog : dialogs)
      if (dialog.isShowing()) dialog.dismiss();
}

または、Pragnaniが言ったように、アクティビティを終了して再開することもできます。再起動ボタンがどこにあるかによって異なります...

于 2013-03-24T17:34:10.627 に答える