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 :

Builder Negative button


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut Builder Negative button
    Bonjour,

    J'ai créé une ListView pour des contacts (avec nom, mail...) et lorsque l'on clique sur le nom cela créé un alertBuilder avec comme message les informations du contact, il y a aussi sur cet alertBuilder deux bouton, un positif qui est un bouton "retour" et un négatif qui doit supprimer le contacts. Cependant je n'arrive pas a supprimer le contact avec ce bouton car je n'arrive pas en envoyer son id (identifiant unique que possède chaque contact).

    Voici mon code :

    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
    @Override
        public void onClickNom(Contact item, int position) {
     
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Contact ");
     
            builder.setMessage("Vous avez cliqué sur : " + item.getNom() + "\nVoici ses informations :\nMail : " + item.getMail() + "\nTel : " + item.getTel() + "\nAdresse : " + item.getAdresse());
     
            builder.setPositiveButton("Retour", null);
     
            builder.setNegativeButton("Supprimer", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
     
     
                    contactDAO.open();
     
                    contactDAO.delete(which);  // delete avec l'id du contact qui vaut "position" + 1
     
                    contactDAO.close();
                }
     
            });
            builder.show();
        }
    Donc voila j'ai créé un alertBuilder mais je ne sais pas comment faire pour donner l'id dans la fonction onclick du bouton negatif.

    Merci d'avance pour votre aide.

    Cedche99

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Dans ta classe Contact, tu as créés les variables nom, mail, tel et adresse, mais pas l'id, ce qui est utile et nécessaire quand on travaille avec des bases de données. Donc si tu lui renvoies son id qui le défini dans la base, tu n'auras plus qu'à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contactDAO.delete(item.getId());

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Si j'ai dans ma classe contact il y a un attribut id mais je ne sais pas comment l'envoyer dans la fonction onclick du bouton négatif, j'ai marquer en commentaire l'endroit où je suis bloquer.

    Cedche99

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Dans ce cas, je vois 2 solutions. Soit ta méthode contactDAO.delete est mauvaise (peu probable), soit tu ne mets pas à jour ta listview. Car tu supprimes une donnée de la base, mais ta liste est toujours remplie avec ta liste issue de la base. Donc tu dois ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tonAdapter.remove(tonAdapter.getItem(position)); //ca évite de refaire un appel à la base (à faire si la méthode delete fonctionne bien)
    tonAdapter.notifyDataSetChanged

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Re,

    En fait le problème n'est pas de supprimer, cela est ok. Mais c'est la variable que je ne sais pas quoi mettre...

    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
    @Override
        public void onClickNom(Contact item, int position) {
    
            TextView tv_Nom = (TextView)findViewById(R.id.TV_Nom);
            tv_Nom.setTag(position);
    
    
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Contact " + position);
    
            builder.setMessage("Vous avez cliqué sur : " + item.getNom() + "\nVoici ses informations :\nMail : " + item.getMail() + "\nTel : " + item.getTel() + "\nAdresse : " + item.getAdresse());
    
            builder.setPositiveButton("Retour", null);
    
            builder.setNegativeButton("Supprimer", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
    
    
                    contactDAO.open();
    
                    contactDAO.delete(Je ne sais pas quoi mettre); // car which me donne -2 car vue qu'il s'agit pas d'un vrai bouton mais d'un listView
    
                    contactDAO.close();
                }
    
            });
            builder.show();
        }
    
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    je ne comprends pas le problème alors, pourquoi n'as tu pas mis simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contactDAO.delete(position + 1)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2016
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Re,

    Autant pour moi je voyais cela tellement evidement et je pensais que j'avais deja essayer et que ça me faisait une erreur.

    Désolé et merci de ton aide

    J'aurais un autre question mais je sais pas si je peux continuer sur cette page ?

    Je me demande comment on fait pour mettre la même chose pour un long clique ?

    Cedche99

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    regarde la fonction View.OnLongClickListener

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

Discussions similaires

  1. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de développement
    Réponses: 31
    Dernier message: 14/06/2007, 23h48
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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