成功したときにユーザーに次のレベルの課題を表示する AlertDialog を作成しました。ということで、対応コードはこんな感じ。ゲームが成功すると showDialog(R.id.display_success) が呼び出され、次のコードが実行されます。
したがって、すべての呼び出しでこのコードを実行することを期待しています。でも; ゲームは 1 回だけ実行され、他のすべての実行で同じ AlertDialog が表示されます。つまり、最初のインスタンスが作成された後にインスタンスが作成されず、最初のインスタンスが常に使用されるようです。
case R.id.display_success:
updateGameSettings();
message = formatLevel()
+ formatMission();
return new AlertDialog.Builder(this)
.setIcon(R.drawable.smiley_happy)
.setTitle(R.string.dialog_success)
.setMessage(message)
.setPositiveButton(R.string.alert_dialog_newgame, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
startANewGame();
}
})
.setNegativeButton(R.string.exit, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
}
})
.create();