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 :

Modification du titre d'un AlertDialog


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 Modification du titre d'un AlertDialog
    Bonjour à toutes et à tous,

    Je crée une boîte de dialogue dans laquelle j'installe plusieurs boutons et, lorsque j'appuie sur un bouton la méthode "listener" est déclenchée. Je voudrais, lors de cette action, modifier (entre autre) le titre de la boîte de dialogue. Pour ce faire j'ai l'instruction en ligne 14, mais après avoir essayé différents trucs, elle n'a aucune action.

    Est-il possible de modifier le titre d'une bîte de dialogue 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 void affPropRep (final int noRep) {
    	final AlertDialog.Builder propRep = new AlertDialog.Builder(context);
    	LinearLayout fntrPrinc = new LinearLayout(context);
     
    	final ImageButton[][] img = new ImageButton[6][4]; // Création d'un tableau pour 24 ImageButton
    		for (int j = 0; j < 4; j++)
    			for (int i = 0; i < 6; i++)
    				img[i][j] = new ImageButton(context); // Création des 24 ImageButton
     
    View.OnClickListener listener = new View.OnClickListener() { // Click sur un des ImageButton
        	@Override
        	public void onClick(View v) {
        		int noBtn = (Integer) v.getTag();
    		propRep.setTitle("Titre différent"); // Cette instruction n'a aucune action
    	}
        };
     
        int btnNum = 0;
        for (int j = 0; j < 4; j++) {
        	LinearLayout fntrSec04 = new LinearLayout(context);
    	for (int i = 0; i < 6; i++) {
        		img[i][j].setTag(Integer.valueOf(btnNum++));
    		img[i][j].setImageResource(iconRep[i][j].icone); //  Affectation d'une icône particulière
    		img[i][j].setOnClickListener(listener); // Affectation  du listener aux ImageButton
        		fntrSec04.addView(img[i][j]);
        	}
        	fntrPrinc.addView(FntrSec04);
        }		
    propRep.setView(fntrPrinc);
    	propRep.setTitle("\""+ptsRep[noRep].Nom+"\""); // Initialisation du titre de la boîte AlertDialog
    	propRep.setIcon(iconRep[ptsRep[noRep].colIcon][ptsRep[noRep].rowIcon].icone);
    	propRep.setPositiveButton("Valider", new DialogInterface.OnClickListener() {
    		public void onClick(DialogInterface dialog, int which) {
    		}
    	});
    	propRep.show();
    }
    Merci de votre aide.

    Pierre

  2. #2
    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
    Ta variable propRep correspond au Builder d'une AlertDialog.
    Si tu veux modifier le titre d'une AlertDialog qui est déjà affichée, il faut interagir avec elle-même et non avec son Builder.

    De plus, je ne vois nulle part où le listener est utilisé. Il ne manquerait pas un bout de code ?

  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 Simon MARQUIS Voir le message
    Ta variable propRep correspond au Builder d'une AlertDialog.
    Si tu veux modifier le titre d'une AlertDialog qui est déjà affichée, il faut interagir avec elle-même et non avec son Builder. ...
    Oui, mais comment a-ton accès au AlertDialog ?

    Citation Envoyé par Simon MARQUIS Voir le message
    ... De plus, je ne vois nulle part où le listener est utilisé. Il ne manquerait pas un bout de code ?
    Il est utilisé en ligne 24 pour chaque img créée.

    Merci de votre aide.

    Pierre

  4. #4
    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
    Alors, plus simplement :
    L'objet AlertDialog.Builder est un constructeur et permet de configurer une AlertDialog.
    Pour pouvoir afficher cette AlertDialog, il faut "valider" la construction en appelant la méthode build() sur l'objet AlertDialog.Builder. Cette méthode va construire l'AlertDialog en fonction des paramètres que tu as définis.
    Ensuite, il te suffit d'appliquer la méthode show() sur l'AlertDialog.

    Pour résumer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    AlertDialog.Builder builder = new AlertDialog.Builder().setTitle(...).setView(...) ;
    AlertDialog dialog = builder.build();
    dialog.show();

  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
    Merci Simon MARQUIS pour cette réponse. Pour autant, je pense qu'on ne s'est pas compris, je me suis mal exprimé. Ce que tu me proposes, je l'ai fait et ma boite de dialogue est ouverte. C'est maintenant qu'elle est ouverte et qu'à l'aide de boutons que j'y ai installés, je veux modifier le titre.

    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
    Pour modifier le titre, il faut le faire depuis l'objet AlertDialog et non AlertDialog.Builder. En reprenant mon court example :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AlertDialog.Builder builder = new AlertDialog.Builder().setTitle(...).setView(...) ;
    AlertDialog dialog = builder.build();
    dialog.show();
     
    //...
    //...
     
    dialog.setTitle("Nouveau titre");

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

Discussions similaires

  1. modification du titre d une zone de texte
    Par sunwind dans le forum IHM
    Réponses: 0
    Dernier message: 05/02/2008, 11h35
  2. Modification du titre de la fenêtre à partir d'une Vue
    Par d2025 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 02/10/2007, 13h02

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