IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Comment activer un onClick par programmation


Sujet :

Android

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Comment activer un onClick par programmation
    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 ?

    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();
        }
    Merci de votre aide.

    Pierre.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Salut,

    il suffit d'appeler la méthode dismiss de ta dialog pour la fermer.

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par David55 Voir le message
    Salut,

    il suffit d'appeler la méthode dismiss de ta dialog pour la fermer.
    Merci David55. C'est finalement ce que j'avais fait, mais en appelant cette méthode de l'extérieur car j'instanciais le dialog en même temps que j'appelai sa méthode create ; c'est-à dire tout à la fin des définitions de mon dialogBuilder.

    Du coup, j'ai séparé l'instanciation et la création. J'ai fait l'instanciation avant le dialogBuilder et tout s passe bien.

    Cordialement.

    Pierre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Comment éteindre l'ordinateur par programmation ?
    Par hobotalker dans le forum Windows Forms
    Réponses: 10
    Dernier message: 10/04/2018, 13h25
  2. Comment créer plusieurs TEdit par programmation?
    Par rebelor dans le forum Delphi
    Réponses: 2
    Dernier message: 02/06/2007, 17h30
  3. Réponses: 2
    Dernier message: 07/08/2006, 16h43
  4. Activer la tabulation par programmation
    Par Hirouchima dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/05/2006, 21h25
  5. Comment gérer des services par programmation avec Delphi ?
    Par isachat666 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 18/12/2005, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo