アンドロイドアプリを続行する前にユーザーがボタンを押すまで待つ

私はアンドロイドのためのゲームを持っています、そして、ユーザーが勝利したら、彼らは再びプレイしたいかどうか尋ねるダイアログを表示します。 「いいえ」と答えた場合はアプリケーションが終了し、「はい」と答えた場合は別のゲームが開始されます。問題は、ユーザーがボタンを押すのを待つのではなく、ダイアログが表示されるときに新しいゲームが開始されることです。コードは次のようなものです:

if (won) {
    showDialog(DIALOG_WON_ID);
    imageAdapter.initializemThumbIds(); //this starts a new game
}

私は、ダイアログが閉じられるまで、新しいゲーム開始ラインを実行したくありません。

0

2 答え

この電話をかける

imageAdapter.initializemThumbIds();

「はい」ボタンのクリックイベントに。

編集:

このようなもの:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Would you like to play again?")
       .setCancelable(false)
       .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) {
               imageAdapter.initializemThumbIds();
           }
       })
       .setNegativeButton("No", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
              //Exit the game
           } 
       });
AlertDialog alert = builder.create();   
alert.show();
2
追加された
「imageAdapterを解決できません」と表示されます。
追加された 著者 BenH,
@MatthewRudy助けてくれてありがとう、残念ながら私はあなたのコメント(onclickリスナーを設定することについて)を理解していません。しかし、説明的な名前についてのポイント。
追加された 著者 BenH,
@SpencerRuportあなたはあなたが話していることを知っているように聞こえるので、おそらく私は何かをばかげているコードで愚かなことをしましたが、imageAdapter行をonClick関数に置くことはできません。 imageAdapterを解決できません "。
追加された 著者 BenH,
@SpencerRuport Ok、そうするでしょう。ありがとう!
追加された 著者 BenH,
@SpencerRuport私はスコープの問題を解決しました。これはうまくいきました。ありがとう!
追加された 著者 BenH,
@BenH - 私の答えを編集しました。
追加された 著者 Spencer Ruport,
@BenH - 明らかに範囲の問題です。このコードを showDialog メソッドに貼り付けたのは、 imageAdapter をそのプロシージャで定義されたオブジェクトに解決できないものと思われます。 code> if(won)文が存在します。 imageAdapter メソッドを showDialog メソッドに渡すか、グローバル変数にする必要があります。さらに、 onClick メソッドで使用できるように、 imageAdapter オブジェクトの最終バージョンを宣言する必要があります。われわれはかなり救済的な領域に入っているので、おそらくあなたはJavaのスコープを読むべきです。
追加された 著者 Spencer Ruport,
彼は、 if(won){showDialog} を選択してダイアログボタンのonclickリスナーを設定し、ダイアログボタンを新しいゲームを開始させることを意味します。
追加された 著者 Matthew Rudy,
imageAdapter.initializemThumbIds()メソッドは、新しいゲームを開始するようには聞こえません。
追加された 著者 Matthew Rudy,

現在のコードでダイアログが表示され、すぐに showDialog()の行に進みます。あなたがしたいのは、新しいゲームを開始するコードを、 showDialog()に実装された Dialog DialogInterface.OnClickListener() >。

1
追加された