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 : Sélectionner tout - Visualiser dans une fenêtre à part
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