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 :

Boite de dialogue personalisé


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut Boite de dialogue personalisé
    Bonjour,

    Je suis un petit nouveau sur ce forum et en programmation android.

    J'ai commencé une petite application qui utilise une boite de dialogue avec une liste d'item.
    Je souhaite que la boite ce ferme lorsque l'utilisateur sélectionne un item.

    En premier, je voulais une listView, mais lorsque je cliquer sur l'item dans la boite de dialogue, le listener de la liste intercepte l'item cliquer, mais la boite ne ce ferme pas. (problème répertorier sur le web, pas trouver de solution. je ne veux pas être obliger de cliquer sur les boutons positive ou negative)

    Alors je me suis tourné vers le setItems du AlertDialog.Builder. Tout ce passe bien, l'item ce sélectionne et la boite ce ferme.
    Par contre le texte est un peu gros, j'aimerais modifier la dimension du texte dans la liste de la boite de dialogue.

    Si quelqu'un a une idée, soit pour la listview ou pour la dimension du texte.

    merci

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Quel que soit le moyen que tu choisis, tu n'as qu'une chose à faire : garder une référence de ton Dialog, et finir l'action du touché par monDialogPerso.dismiss();, tout simplement.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut Hizin
    Merci Hizin d'avoir répondue rapidement.

    par contre, je ne voie pas comment garder la référence dialog.

    voici le bout de code qui fait afficher la boite de dialogue.

    Code Java : 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
    33
    34
    35
    36
    37
    38
    39
    40
    //affiche boite dialogue
    
    LayoutInflater factory = LayoutInflater.from(this);
    final View alertDialogView = factory.inflate(R.layout.db_long_click_mag, null);
    	  	  	  	  	  
    
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    	  	  	          
    adb.setView(alertDialogView);
    	  	  	 
    adb.setTitle("Option de modification ");
    	  	  	        	         	       
    adb.setIcon(android.R.drawable.ic_dialog_alert);
    			  	  	 
    ListView liste = (ListView) alertDialogView.findViewById(R.id.choixModListe);
    ArrayList<String> exemple = new ArrayList<String>();
    exemple.add("Modifier" );
    exemple.add("Ajouter");
    			  	  	 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(alertDialogView.getContext(), android.R.layout.simple_list_item_1, exemple);
    liste.setAdapter(adapter);
    
    liste.setOnItemClickListener(new AdapterView.OnItemClickListener() {      
    @Override
    public void onItemClick(AdapterView<?> adapterView,View view,int position,long id) {
    	  	  	    	  
    	switch (position) {
    	  	  	  	  
    	  case 0:
    		Toast.makeText(getApplicationContext(), "Modifier Liste", Toast.LENGTH_SHORT).show();
    	  	break;
    	  case 1:
    	  	Toast.makeText(getApplicationContext(), "Modifier Prooduit", Toast.LENGTH_SHORT).show();
    	  	break;
    	  	  	    	}
    	}
    
    	??????.dismiss();
    });
    adb.show();

    J'ai retiré les commentaire et mis en gras l'endroit ou j'insèrerais la commande dismiss()


    merci de ton aide.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Tout ce que tu as à faire, c'est de ne pas faire appel à show(), mais à create() du builder. Ensuite, tu stockes la référence dans une variable qui devra être déclarée en "final" pour augmenter artificiellement sa portée et qu'elle soit dispo dans le listener. A la fin du listener, tu fais un dismiss et c'est bon.

    En somme :
    Code Java : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    //affiche boite dialogue
     
    LayoutInflater factory = LayoutInflater.from(this);
    final View alertDialogView = factory.inflate(R.layout.db_long_click_mag, null);
     
     
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
     
    adb.setView(alertDialogView);
     
    adb.setTitle("Option de modification ");
     
    adb.setIcon(android.R.drawable.ic_dialog_alert);
     
    ListView liste = (ListView) alertDialogView.findViewById(R.id.choixModListe);
    ArrayList<String> exemple = new ArrayList<String>();
    exemple.add("Modifier" );
    exemple.add("Ajouter");
     
    final Dialog dialog = adb.create();
     
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(alertDialogView.getContext(), android.R.layout.simple_list_item_1, exemple);
    liste.setAdapter(adapter);
     
    liste.setOnItemClickListener(new AdapterView.OnItemClickListener() {      
    @Override
    public void onItemClick(AdapterView<?> adapterView,View view,int position,long id) {
     
    	switch (position) {
     
    	  case 0:
    		Toast.makeText(getApplicationContext(), "Modifier Liste", Toast.LENGTH_SHORT).show();
    	  	break;
    	  case 1:
    	  	Toast.makeText(getApplicationContext(), "Modifier Prooduit", Toast.LENGTH_SHORT).show();
    	  	break;
    	  	  	    	}
    	}
     
    	dialog.dismiss();
    });
    dialog.show();

    Code non-testé.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut
    Merci Hizin,

    on peu maintenant dire que le code est bon.
    tester et fonctionnel.

    Je me sens un peu ..... débutant de ne pas y avoir pensé.
    mais bon c'est ce que je suis après tout.
    un pas à la fois est j'y arriverais.

    Merci encore, je peu poursuivre mon développement.

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

Discussions similaires

  1. une Boite de Dialogue Personalisé
    Par le_fun dans le forum VB.NET
    Réponses: 9
    Dernier message: 04/05/2008, 18h14
  2. [MFC] rendre une boite de dialogue inactive
    Par Vestaproman dans le forum MFC
    Réponses: 8
    Dernier message: 22/01/2004, 14h09
  3. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59
  4. Réponses: 5
    Dernier message: 04/04/2003, 15h02
  5. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30

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