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 :

Probleme affichage menu


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut Probleme affichage menu
    Bonjour

    Je fais un menu avec item suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <item
      	android:title="Options" 
       	android:id="@+id/itemOptions"  	
      	android:icon="@drawable/icon">
      </item>
    L'icone ne s'affiche pas, pouvez-vousme dire pourquoi
    Merci pour vos réponses
    JCM

  2. #2
    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,

    Il faut charger le menu dans le code de l'activity .

    http://developer.android.com/guide/topics/ui/menus.html

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Merci pour ta réponse

    je l'ai fait avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Override
        public boolean onCreateOptionsMenu(Menu menu) {    	
        	menu.add("Options");  
        	menu.add("Quitter");   
        	return true; 
        }
    JCM

  4. #4
    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
    Ou plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.'ton_menu', menu);
        return true;
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Oui mais maintenant jai sur la ligne
    inflater.inflate(R.menu.MonMenu, menu);
    R.menu.MonMenu de surligné

    Désolé mais je débute avec Android
    JCM

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    La solution que Feanorin te propose te permet de définir ton menu dans un fichier xml :
    http://developer.android.com/guide/t...menus.html#xml
    puis de l'"inflater" :
    http://developer.android.com/guide/t...html#Inflating

    Merci d'effectuer un minimum de recherche, le lien est posté plus haut dans la discussion...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Je suis allé voir sur ces liens
    mais je n'y comprend pas grand chose
    c'est un peu hard pour un débutant et cela fait des heures que je me triture les méninges sans résultat
    JCM

  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
    il faut juste que tu crée un fichier xml menu que tu placeras dans le dossier res/menu.
    Appelle le "tonmenu.xml"
    Reprends l'exemple que tu avais posté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
     
    <item
      	android:title="Options" 
       	android:id="@+id/itemOptions"  	
      	android:icon="@drawable/icon">
      </item>
    </menu>
    Vérifie si ton image icon.png est bien présente dans ton dossier res/drawable .

    Ensuite il te suffit juste d'implementer ta procédure onCreateOptionsMenu dans l'Activity ou tu souhaite voir apparaitre ton menu . Il ne s'affichera que dans celle où tu auras implémenté le code ci dessous dans leur classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.tonmenu, menu);
        return true;
    }
    R.menu.tonmenu -> reprèsente le nom du menu crée précédement

    R Ressource dossier res
    menu dossier menu
    tonmenu nom de ton fichier tonmenu.xml (le suffixe .xml n'est pas nécessaire dans les déclarations du code).

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Merci pour ta réponse, mais j'ai toujours le même problème

    J'ai créé TonMenu.xml dans Res/layout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
     
    <item
      	android:title="Options" 
       	android:id="@+id/itemOptions"  	
      	android:icon="@drawable/icon">
      </item>
    </menu>
    DansMainNewMenu.java j'ai ce code

    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
    package com.wtp.NewMenu;
     
    import android.app.Activity;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.MenuItem;
    import android.widget.Toast;
     
    public class mainNewMenu extends Activity {
        /** Called when the activity is first created. */
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {    	
        	MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.TonMenu, menu);  
        	return true; 
        }
        @Override
        public boolean onMenuItemSelected(int featureId, MenuItem item) { 
        	switch (item.getItemId()) {
        	case R.id.itemOptions: 
        		Toast.makeText(this, "Ouverture des options", Toast.LENGTH_SHORT).show(); 
        		return true; 
        	case R.id.itemQuitter:
        		finish(); 
        		return true;
        	}
        	return super.onMenuItemSelected(featureId, item); 
        }
     
    }
    Et dans R.java

    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
    /* AUTO-GENERATED FILE.  DO NOT MODIFY.
     *
     * This class was automatically generated by the
     * aapt tool from the resource data it found.  It
     * should not be modified by hand.
     */
     
    package com.wtp.NewMenu;
     
    public final class R {
        public static final class attr {
        }
        public static final class drawable {
            public static final int icon=0x7f020000;
        }
        public static final class id {
            public static final int MonMenu=0x7f050000;
            public static final int itemOptions=0x7f050001;
            public static final int itemQuitter=0x7f050002;
        }
        public static final class layout {
            public static final int main=0x7f030000;
            public static final int monmenu=0x7f030001;
        }
        public static final class string {
            public static final int app_name=0x7f040001;
            public static final int hello=0x7f040000;
        }
    	public static Object menu;
    }
    L'erreur est sur cette ligne :
    inflater.inflate(R.menu.TonMenu, menu);
    R.menu.TonMenu est surligne

    JCM

  10. #10
    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
    Citation Envoyé par JCMANSION Voir le message
    Merci pour ta réponse, mais j'ai toujours le même problème

    J'ai créé TonMenu.xml dans Res/layout

    [
    Ce fichier doit se trouver dans Res/menu

    Et pour vérifier si cela a été bien pris en compte tu dois avoir Tonmenu déclaré dans le fichier R.java comme ci-dessous.
    N'hésite pas à faire un clean sur ton projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static final class menu {
            public static final int Tonmenu=(sa valeur en hexa);
          }

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Merci pour ta réponse

    Mais je n'ai pas de menu dans res
    j'ai les dossiers layout, value et les drawables
    et le manifeste xml et default.properties

    C'est quoi un clean ?

    JCM

  12. #12
    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
    Citation Envoyé par JCMANSION Voir le message
    Merci pour ta réponse

    Mais je n'ai pas de menu dans res
    j'ai les dossiers layout, value et les drawables
    et le manifeste xml et default.properties

    C'est quoi un clean ?

    JCM
    Pour la création du menu tu as deux possibilités,

    1/ Click droit sur le dossier res de ton projet -> New -> Android File XML
    Dans le Panel tu cliques sur le radiobutton Menu
    Tu rentres le nom de ton menu soit Tonmenu.xml
    et automatiquement tu auras le dossier menu crée avec le fichier menu
    crée.

    2/ Sinon tu peux créer le dossier menu dans res manuellement ainsi que le fichier.

    Je te conseille de passer par le 1/

    Pour faire un clean il faut aller dans Projet -> Clean
    la tu choisis le nom de ton projet puis Ok
    Cette fonctionnalité permet à Eclipse de remettre à jour R.java ainsi que toutes les dépendances de tes projets. Quand tu as des erreus sur le fichier R.java ou des incohérences suite à un rajout de code je te conseille de faire un clean .

    Je te met un tuto
    http://www.vogella.de/articles/Android/article.html
    paragraphe 6

  13. #13
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Bonjour,

    En effectuant une recherche simple dans la documentation Android, on trouve pas mal de réponses

    La gestion des ressources dans un projet Android :
    http://d.android.com/guide/topics/re...resources.html

    Comment gérer une ressource de type 'menu' :
    http://d.android.com/guide/topics/re...-resource.html

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Feanorin j'ai fait le tuto paragraphe 6
    je n'ai aucune erreur
    mais quand je lance le simulateur
    je clic sur l'icone de l'appli
    et j'ai un message qui dit que l'application n'est pas installée sur lesimulateur

  15. #15
    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
    et j'ai un message qui dit que l'application n'est pas installée sur lesimulateur
    Je ne peux pas t'aider qu'avec que ça.

    Mais nous ce que tu as dans le LogCat comme erreur.
    PS : tu n'as pas besoin de refaire le Tuto , mais inspire toi juste du 6.1 et 6.2.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Enfin j'y suis arrivé, le code de menu.xml est le suivant :
    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
    <menu
      xmlns:android="http://schemas.android.com/apk/res/android">
    	<item android:id="@+id/Voir" 
    	android:title="Voir">
    	</item>
    	<item android:id="@+id/Jour" 
    	android:title="Jour">
    	</item>
    	<item android:id="@+id/Base" 
    	android:title="Base">
    	</item>
    	<item android:id="@+id/Chiffre" 
    	android:title="Chiffre">
    	</item>
    </menu>
    Je voudrais ajouter une image à la place du titre
    Est-ce possible et ou dois-je mettre les images, j'avais créé un dossier drawable dans le res et cela me met en erreur

    JCM

  17. #17
    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
    Pour avoir une image dans le menu ,
    Met 'tonimage.jpg' drans le dossier drawable sous le dossier res

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <item android:id="@+id/Voir" 
            android:icon="@drawable/tonimage" // pas besoin de l'extension
    	android:title="Voir">

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Quand je mets mon image au format png dans un des reps drawable, j'ai ce message
    [2010-11-16 14:29:18 - NewMenu] res\drawable-mdpi\Voir.png: Invalid file name: must contain only [a-z0-9_.]

    et dans le main.java
    sur cette ligne : setContentView(R.layout.main);
    j'ai le R. de surligné
    JCM

  19. #19
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Pas de majuscule dans le nom des ressources
    Invalid file name: must contain only [a-z0-9_.]

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 101
    Points
    101
    Par défaut
    Merci pour vos réponses, mes problèmes sont réglés.
    Néanmoins je voudrais savoir s'il est possible :
    mon menu a 4 items, ils s'affichent sur deux lignes
    est-ce possible d'obtenir un affichage sur une seule ligne ?

    JCM

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/09/2009, 11h03
  2. [CS4] PROBLEME AFFICHAGE BARRE DE MENU SPRY HORIZONTALE
    Par lululafourmi dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 11/03/2009, 17h05
  3. probleme affichage menu déroulant CSS/java sous IE
    Par ex6s10z dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 14/06/2007, 15h38
  4. [Conception] Probleme affichage 1ere rubrique menu
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/03/2006, 11h23
  5. Probleme affichage menu (.js)
    Par freud dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/10/2005, 16h27

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