Aujourd'hui, j'ai fait face à un problème très étrange. Dans mon jeu, je crée AlertDialog pour montrer à l'utilisateur les défis de niveau suivant quand on est réussi. Donc, le code correspondant est comme ça. Lorsque le jeu est réussi, showDialog (R.id.display_success) est appelé et le code suivant est exécuté. Donc, je m'attends à exécuter ce code à chaque appel. Toutefois; le jeu s'exécute une seule fois et affiche le même AlertDialog dans toutes les autres exécutions. Je veux dire, comme l'instance n'est pas créée après que le premier est créé et la première instance est utilisée tout le temps. J'espère pouvoir décrire mon problème.Android: ne peut pas changer le texte apparaît dans 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();
Je pense que vous avez tort. Par conception, chaque boîte de dialogue est créée une seule fois. Si vous voulez changer le contenu de votre boîte de dialogue, utilisez onPrepareDialog, qui est appelé chaque fois que votre boîte de dialogue est sur le point d'apparaître. Le code fourni peut fonctionner, mais ce n'est pas la meilleure façon de le faire. –
Je mets le 'removeDialog' dans une instruction try catch. Le code fonctionne, mais je doute beaucoup que ce soit la bonne façon de le faire –
@Tim, oui je me trompe. J'ai appris cela beaucoup plus tard que onPrepareDialog est appelé à chaque fois que le dialogue est créé. –