Modifier AlertDialog message via un bouton
Bonjour,
Je débute en Android, et je fais fasse à un problème lié aux AlertDialog.
Mon application contient une ListView, dont chaque élément de cette ListView contient un bouton qui va lancer un AlertDialog.
Dans cet AlertDialog, j'affiche un message, qui vient de ma méthode currentUser.getRandomMessage(). Je souhaite que mon AlertDialog permette de "relancer" le message, donc de garder la même boite de dialogue mais de changer le message (sans fermer la boite).
Ci-dessous le code de mon bouton. Bien-sûr, si je suis ici, c'est que ça ne marche pas. L'AlertDialog se lance bien avec un message aléatoire, il se ferme bien si j'appuie sur le bouton "OK". Par contre, je n'arrive pas à le relancer. J'ai créé un bouton neutre "Relancer" pour pouvoir relancer. J'essaie de modifier ce bouton pour pouvoir mettre à jour le message et montrer le dialogue. Malheureusement, l'alert dialog se ferme tout de suite quand j'appuie sur le bouton relancer.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Button buttonRandomMess = (Button) convertView.findViewById(R.id.buttonRandom);
buttonRandomMess.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
//Je récupère l'user qui va avoir un message aléatoire
final User currentUser = (User) v.getTag(v.getId());
AlertDialog.Builder builder = new AlertDialog.Builder(getActualContext());
builder.setMessage((String) currentUser.getRandomMessage());
//Bouton pour fermer
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
//Bouton pour relancer
builder.setNeutralButton("Relancer", new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface d, int id) {
}
});
//Creation de la boite de dialogue
final AlertDialog dialog = builder.create();
//Modification du bouton neutre pour relancer le message
dialog.setButton(DialogInterface.BUTTON_NEUTRAL,"Relancer",new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface d, int id) {
dialog.setMessage((String) currentUser.getRandomMessage());
dialog.show();
}
});
dialog.show();
}
}); |
Comment puis-je modifier l'alertDialog déjà ouverte via le bouton neutre ?
Si vous avez aussi des commentaires généraux sur ce morceaux de code, n'hésitez pas !
Je vous remercie d'avance pour votre aide :)