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

Composants graphiques Android Discussion :

Ajouter dynamiquement des item au menu


Sujet :

Composants graphiques Android

  1. #1
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut Ajouter dynamiquement des item au menu
    Bonjour,
    J'ai un fichier dans res/menu/ avec 5 items à l'intérieur.

    Mais il y a un couple qui sont opposé en quelques sortes.
    Soit j'en affiche un, soit j'affiche l'autre.

    Donc la première fois que j'appuie sur la touche menu du téléphones :
    public boolean onCreateOptionsMenu(Menu menu)
    Est appelé et il inflate.

    Ensuite dans :
    public boolean onPrepareOptionsMenu(Menu menu)
    Je menu.removeItem(R.id.item);
    Celui que je veux.

    Jusqu'ici tout fonctionne parfaitement.
    J'ai bien les 4 items que je veux et la 5ième a été supprimé.

    Si une donné change, j'aimerai que l'item que j'ai supprimé revienne et que je supprime l'autre.
    Je peux supprimer l'autre sans problème.
    Mais si j’essaie d'ajouter l'item que j'ai supprimé elle n'est plus dans le Menu menu et du coup ça me fait un null.

    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) { 
         onCreateOptionsMenu(Menu menu);
         //
    }
    Fonctionnerait presque, le problème c'est qu'il prend les 4 items que j'ai et rajoute les 5 du fichiers XML.

    Comment je pourrais récupérer un item sans qu'il soit dans le Menu menu ?
    Parce que fait que j'ai un null.
    Surement parce que j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menu.removeItem(R.id.item);
    juste avant.

    Ou alors comment je pourrais réinitialiser le menu ?
    J'aimerais appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onCreateOptionsMenu(Menu menu);
    Mais avec un Menu vide.

    Enfin pour l'instant je ne vois que ces 2 possibilités, mais il en existe peut être d'autre...

    J'ai l'impression qu'ici il le font avec un group :
    http://developer.android.com/guide/t...s.html#intents
    En fait il font un truc pour lancer une Activity on dirait.
    Donc c'est pas ça que je recherche.
    Keith Flint 1969 - 2019

  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 : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Je ne sais pas si c'est possible pour les objets des menus, mais au lieu de supprimer, passer en Visibility.GONE et faire revenir au besoin ?
    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
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Excellente idée !
    Ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    menu.findItem(R.id.item).setVisible(false);
    Je n'avais pas fais attention à la méthode findItem de la classe Menu, et je ne savais pas non plu que MenuItem avait une méthode setVisible(boolean).

    Merci.

    D'habitude je ne passe pas à côté de méthodes comme ça...
    Je dois être fatigué !
    Keith Flint 1969 - 2019

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

Discussions similaires

  1. [CKEditor] Ajouter des Items au menu contextuel
    Par tbreton dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 02/08/2012, 22h33
  2. ajout dynamique d'item dans menu
    Par med_ellouze dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/01/2008, 10h45
  3. Ajouter dynamiquement un Item à un menu
    Par firejocker dans le forum MFC
    Réponses: 8
    Dernier message: 25/11/2005, 11h52
  4. ajouter dynamiquement des items dans un popup menu
    Par Malone dans le forum Composants VCL
    Réponses: 7
    Dernier message: 23/08/2005, 16h08
  5. Sélection des items du menu
    Par Depteam1 dans le forum MFC
    Réponses: 3
    Dernier message: 04/03/2005, 11h30

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