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 :

Récuperer un item d'un menu


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Points : 109
    Points
    109
    Par défaut Récuperer un item d'un menu
    Bonjour,

    dans mon application application Android, j'ai un petit menu qui se place en haut de l'écran sur tablette et/ou s'ouvre via un bouton sur smartphone.

    Le code ressemble grosseos modo à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <menu xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/barmenu">
        <item android:id="@+id/trucbouton" android:title="@string/desc_bouton" android:text="truc" android:showAsAction="ifRoom|withText"></item>
      [...]
    </menu>
    je cherche à créer un objet MenuItem (ou autre) de mon item "trucbouton".

    Un findViewById n'est pas possible... Quelle solution dois-ja alors appliquer et pourquoi celle là ? (ou plutot pourquoi le findViewbyId ne marche pas histoire que je comprenne)

    Merci pour toute réponse !

    bonne journée

  2. #2
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Tu peux manipuler des objets MenuItem qui correspondent à tes entrées de menu dans les méthodes onCreationOptionsMenu, onPrepareOptionsMenu, onOptionsItemSelected, méthodes qui sont appelées à différents moments de la 'vie' d'un menu (cf doc)
    Pourquoi comme cela, et pas de findViewById ? Parce que les menus ne font pas partie de la view de ton Activity, et que le mécanisme est donc différent...

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Points : 109
    Points
    109
    Par défaut
    Coucou.
    merci de ta réponse.

    En fait l'un de ces menu ouvre une dialog permettant de sélectionner un élément et change le title en fonction de l’élément sélectionné pour que l'utilisateur ait à vue d’œil l'élément actuellement sélectionné.

    Pour l'exemple, j'ai un "bouton" "année" dans mon menu. en cliquant dessus, mon appli propose le choix de sélectionner une année parmi diverses. Une fois le choix fait, le Title de ce bouton du menu change de valeur pour laisser apparaitre l'année selectionnée.
    Mais j'ai des boutons "raccourcis" dans mon menu qui me permettent de passer facilement au suivant/précédent.(de la liste!) Je cherche donc comment aller modifier title du bouton.

    Pour l'instant, je triche en "stockant" le menuItem dans une variable de classe lorsqu'il est cliqué. Lors des utilisations de suivant précédent, je test si cet objet est != null et hop, je peux changer le title ou pas. Mais tant que l'élément n'est pas utilisé, je ne peux pas le modifier.

  4. #4
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Il faut que tu implémentes la méthode onPrepareOptionsMenu, méthode qui sera appelée à chaque fois que le menu doit s'afficher. Ensuite, tu stockes l'année dans un attribut de ton activity, et tu modifies, dans onPrepareOptionsMenu, la valeur du title de l'entrée de ton menu: pour récupérer cette entrée, utilise la méthode findItem de Menu

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    merci pour ta nouvelle réponse chpil. Cela est exact.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Override
    	public boolean onPrepareOptionsMenu(Menu menu){
    		itemweek = menu.getItem(1);
     
    		return super.onPrepareOptionsMenu(menu);
    	}
    Ce que j'appellerai là "bizarrerie" de la chose, c'est le fait qu'il faille spécifier la position de l’élément (-1 car on débute de 0 comme toujours) et non son ID.

    Encore merci.

  6. #6
    Membre actif Avatar de chpil
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 143
    Points : 212
    Points
    212
    Par défaut
    Utilise findItem comme je te le conseillais, au lieu de getItem, et tu pourras rechercher ton entrée de menu par son ID

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2011
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 89
    Points : 109
    Points
    109
    Par défaut
    Oups, en effet j'avais même pas fait attention au nom de la methode ^^"

    tellement habitué aux "get..." que machinalement je me suis trompé.
    encore merci ^^

  8. #8
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Si votre problème est résolu merci de cliquer sur le bouton en bas de la page .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

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

Discussions similaires

  1. [CListCtrl] récuperer un item
    Par shirya dans le forum MFC
    Réponses: 2
    Dernier message: 19/12/2005, 22h03
  2. Réponses: 7
    Dernier message: 03/10/2005, 09h38
  3. Comment acceder à un item d'un menu
    Par Flash31186 dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2005, 17h40
  4. activer ou désactiver des items d'un menu
    Par gcore dans le forum Composants
    Réponses: 3
    Dernier message: 08/06/2004, 14h07

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