Bonjour à toutes et à tous,
J'ai une boîte de dialogue comprenant dans un scrollView autant de boutons qu'il y a de cartes disponibles dans mon application.
Si je n'appuie sur aucun bouton, mais clique sur "Fermer" (setNegativeButton), la boîte de dialogue se ferme -> OK
Maintenant, si je clique sur un des boutons relatifs à une carte, je déclenche une procédure d 'affichage de la carte en question, mais la boîte de dialogue ne se ferme pas ; pour qu'elle se ferme, je dois en outre appuyer sur "Fermer".
Je souhaiterais que le fait d'appuyer sur un des boutons relatifs aux cartes ferme la boîte de dialogue. Je suppose que si un bout de code activait le "setNegativeButton", cela fermerait la boîte de dialogue. Je n'ai pas trouvé comment faire.
Peut-être y a-t-il une autre manière de faire ?
Merci de votre aide.
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 public static void showMap() { final AlertDialog.Builder choixMap = new AlertDialog.Builder(context); choixMap.setTitle("Cartes"); ScrollView boiteScroll = new ScrollView(context); choixMap.setView(boiteScroll); LinearLayout lesCartes = new LinearLayout(context); lesCartes.setOrientation(LinearLayout.VERTICAL); boiteScroll.addView(lesCartes); for (int i = 0; i < Main.lstCartes.size(); i++) { Button afficher = new Button(context); final String txt = Main.lstCartes.elementAt(i).Nom; afficher.setText(Main.lstCartes.elementAt(i).Nom); final int finalI = i; afficher.setOnClickListener(new View.OnClickListener() { // Affichage de la carte sélectionnée @Override public void onClick(View v) { // Affiche la carte sélectionnée // Que faire ici pour fermer la boîte de dialogue ? } }); lesCartes.addView(afficher); } choixMap.setNegativeButton("Fermer", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); choixMap.show(); }
Pierre.
Partager