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 :

Faire un include dans un layout XML


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 11
    Points
    11
    Par défaut Faire un include dans un layout XML
    Bonjour,

    Je cherche à faire un <include> dans un de mes layouts. Cet include sera l'en-tête de mon application qui ne changera pas au fil des activités.
    Cet include contient une image cliquable, et afin de ne pas répéter la gestion de l'événement du clique sur l'image, je crée une classe mère ActiviteMere (qui hérite de Activité) dont hériteront toutes mes activités.

    J'ai deux problèmes (je ne sais pas s'ils sont liés):
    1. Dans Eclipse, quand je veux accéder au graphical layout de MonActivite1.xml, qui contient ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <include 
        android:id="@+id/header_include"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/en_tete" />
    j'obtiens l'erreur suivante, et le layout n'est pas affiché:
    You must specify a valid layout reference. The layout ID @layout/en_tete is not valid.
    Exception details are logged in Window > Show View > Error Log
    Pourtant j'ai bien un fichier en_tete.xml dans le dossier layout.

    -> Est-ce normal que le graphical layout ne prenne pas en charge <include>?

    2. J'ai créé un gestionnaire d'événement (et un moyen de rendre invisible un bouton) dans ActiviteMere mais cliquer sur le bouton n'a aucun effet, ni le rendre invisible.

    -> Comment faire en sorte que ce qui a été créé dans ActiviteMere soit appliqué ?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 11
    Points
    11
    Par défaut
    J'ai regardé sur un autre ordinateur, avec un autre eclipse, apparemment c'est pareil et donc ce serait un bug d'eclipse, qui fait que les include ne sont pas affichés dans le graphical layout.
    Si vous voulez vous pouvez confirmer avec encore un autre ordinateur mais je pense que ce problème n'a pas de solution.
    Par contre pour la deuxième question je ne sais toujours pas comment faire.

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

    Normalement cela marche , maintenant vu le rapport d'erreur, je pense que tu dois avoir une erreur dans le fichier en_tete.xml.

    You must specifiy a valid layout reference. The layout ID @layout/en_tete is not valid.
    Essaye de l'afficher pour voir si cela marche. Le problème doit venir de là.
    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.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Points : 11
    Points
    11
    Par défaut
    Non je n'ai pas d'erreur dans en-tete.xml.
    J'ai juste un warning comme quoi je n'ai pas de DTD mais ça c'est normal, je n'en ai pas fait.... d'ailleurs je viens de l'enlever en décochant la case appropriée dans les settings de eclipse.

    Si je fais clique droit dessus et valider, il me dit que c'est bon.

    T'es sûr que ça marche chez toi le <include>, dans le graphical layout ?

    Si oui, c'est peut-être un problème de version alors...

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Au cas où quelqu'un chercherait une réponse : il ne faut pas mettre de "_" dans les noms de fichiers xml. Pas de majuscules non plus.

  6. #6
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 55
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par Spydeus Voir le message
    Au cas où quelqu'un chercherait une réponse : il ne faut pas mettre de "_" dans les noms de fichiers xml. Pas de majuscules non plus.
    Petite rectifivation :
    Les underscore sont bien OK pour les noms de fichiers.
    Les noms de fichiers ne peuvent contenir que [a-z0-9_.]
    Au risque sinon d'avoir une erreur (exemple avec TotoTiti.xml) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    res\layout\TotoTiti.xml: Invalid file name: must contain only [a-z0-9_.]
    Ainsi, votre nom de fichiers ne peut contenir que des caractères alphanumériques MINUSCULES, des underscores et des points

  7. #7
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 55
    Points : 83
    Points
    83
    Par défaut
    Pourrais-tu nous mettre à disposition ton fichier en_tete.xml ?

    Car moi je viens de faire un test avec des fichiers persos, et ça fonctionne nickel.

    Cordialement

Discussions similaires

  1. [Débutant] Comment peut-on faire une include dans C# ?
    Par aspkiddy dans le forum C#
    Réponses: 3
    Dernier message: 11/04/2012, 16h22
  2. Comment faire une somme dans un fichier xml
    Par netdoux dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/03/2012, 17h42
  3. Faire un "INCLUDE" dans un VBS
    Par zooffy dans le forum VBScript
    Réponses: 6
    Dernier message: 10/04/2007, 10h06
  4. [XML] Faire du php dans un fichier XML
    Par Oberown dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/02/2006, 14h17
  5. Faire une recherche dans un fichier XML
    Par Devilish_Seraph dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 21/01/2006, 13h41

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