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 :

Garder ouverte une fenêtre de dialogue


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Garder ouverte une fenêtre de dialogue
    Bonjour à toutes et à tous,

    Dans mon application, le code suivant me sert à entrer une valeur de configuration. Si, suite à un test, le résultat ne me convient pas, je souhaite que la fenêtre de dialogue reste ouverte afin de modifier la valeur qui ne me convenait pas.

    Problème : Quelque soit le bouton utilisé, "Valider", "Rien", "Annuler", la fenêtre de dialogue se ferme. J'ai essayé de mettre en ligne 24 un "dlg.show();", mais ça ne fait rien du tout.

    Question : est-il possible de garder la fenêtre ouverte et si oui, comment fait-on ?

    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
    33
    34
    35
    36
    37
    	static AlertDialog dlg;
    	public static void showSystem() {
    		final AlertDialog.Builder infoSys = new AlertDialog.Builder(context);
    		infoSys.setTitle("Réglages système");
    		LinearLayout fntrPrinc = new LinearLayout(context);
    		fntrPrinc.setOrientation(1);
    		LinearLayout fntrSec03 = new LinearLayout(context);
    		fntrSec03.setOrientation(0);
    		TextView prm3 = new TextView(context);
    		prm3.setText(" Durée à éclairage max");
    		final EditText edPrm3 = new EditText(context);
    		edPrm3.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_SIGNED );
    		edPrm3.setText(String.valueOf(INIT.prefsGPS.tMaxLumAff));
    		edPrm3.setHint("minutes");
    		fntrSec03.addView(prm3);
    		fntrSec03.addView(edPrm3);
    		fntrPrinc.addView(fntrSec03);
    		infoSys.setView(fntrPrinc);
    		infoSys.setPositiveButton("Valider", new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int which) {
    				if ("Ça me convient, on ferme le Dialogue")
    					// Faire ce qu'il faut , puis le dialogue va se fermer
    				else
    					// Je voudrais que le dialogue reste ouvert pour modifier ce qui n'allait pas
    			}
    		});
    		infoSys.setNeutralButton("Rien", new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int which) {
    			}
    		});
    		infoSys.setNegativeButton("Annuler", new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int which) {
    			}
    		});
    		dlg = infoSys.create();
    		dlg.show();
    	}
    Merci de votre aide.

    Pierre

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Il faut passer par un popup personnalisé
    Recherche sur Google des exemples.

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Citation Envoyé par anto2b Voir le message
    Il faut passer par un popup personnalisé
    Recherche sur Google des exemples.
    J'ai regardé, vu pas mal de popups personnalisés : c'est surtout au niveau du look. Je n'en ai pas trouvé (ou je n'ai pas compris) qui gèrent ce problème.

    Cordialement.

    Pierre

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Pour personnaliser ton popup tu peux faire un "inflater" sur le layout de ton choix

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Je ne cherche pas à personnaliser ma boîte de dialogue, je cherche simplement à faire que si une condition que j'ai choisie n'est pas remplie, la boîte ne se ferme pas. Je ne vois pas en quoi un LayoutInflater va m'aider en cela ... ou alors, je n'ai vraiment rien compris. Un petit exemple.

    Merci de votre aide.

    Pierre

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    J'ai déjà rencontré ce problème, et il y a plusieurs solutions :
    • Tu peux garder ton AlertDialog en tant que variable globale, et ainsi, si ton test échoue, tu peux réafficher l'AlertDialog
    • Deuxième manière, beaucoup plus sale (et pas sûr qu'elle fonctionne tout le temps) : tu peux ajouter un listener sur les boutons générés par le AlertDialog.Builder. En effet, ils possèdent leur id unique. Si mes souvenirs sont bons, il s'agit de android.R.id.button1, button2 et button3.

Discussions similaires

  1. agrandir une fenêtre de dialogue
    Par maraval dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 20/05/2010, 23h13
  2. Réponses: 4
    Dernier message: 04/04/2007, 10h37
  3. Réponses: 13
    Dernier message: 27/10/2006, 17h24
  4. TreeView dans une fenêtre de dialogue
    Par Bilouzzz dans le forum MFC
    Réponses: 3
    Dernier message: 16/09/2005, 15h55

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