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.
Comment puis-je modifier l'alertDialog déjà ouverte via le bouton neutre ?
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(); } });
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
Partager