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 :

Vue personnalisée XML


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut Vue personnalisée XML
    Bonjour,

    J'ai crée une vue personnalisée (Classe qui extend View). Actuellement, je l'ajoute à mon ContentView avec la méthode addContentView().

    Je souhaite maintenant tout faire en xml. J'ai donc créé un xml :

    (Le nom de ma classe qui extends View est GView)

    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
    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="fill_parent" 
                  android:layout_height="fill_parent" 
                  android:orientation="vertical" >
    	
    	<TableLayout>...
    	</TableLayout>
    	
    	<GView 
    	    android:id="@+id/content"
    	    android:layout_width="fill_parent"
    	    android:layout_height="fill_parent"
            />
    </LinearLayout>

    Dans mon code java.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.setContentView(R.layout.main);
    this.mGView = (GView) findViewById(R.id.content);
    Visiblement, la partie rouge de mon xml ne fonctionne pas. Comment faire pour ajouter une vue peronnalisée au ContentView en passent par le xml?!

    Arca`

  2. #2
    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 : 41
    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
    Par défaut
    Salut,

    Indique le chemin complet de ta classe dans ton XML pour qu'il le retrouve.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut
    Salut, merci pour la réponse.

    J'ai donc testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	<com.dev.GView 
    	    android:id="@+id/content"
    	    android:layout_width="fill_parent"
    	    android:layout_height="fill_parent"
            />
    Il me cale une erreur :

    NoSuchMethodException: com.dev.GView.<init>(android.content.Context, android.util.AttributeSet)

    Mais sinon, je suis bien dans le vrai. On peut bien mettre des vues personnalisées dans le xml (appellées par leurs noms de classe) ?

    Par contre, en effet, ca peut être un problème de chemin car avec la completion, il ne me propose pas de "GView" comme balise. ni de com.dev.... non plus

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut
    Si j'ai bien compris. Il faut redéfinir le constructeur... je vais voir ca

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut
    J'avance un peu... en fait, il y a plusieurs sortes de constructeurs pour une vue

    View(Context context)
    Simple constructor to use when creating a view from code.

    View(Context context, AttributeSet attrs)
    Constructor that is called when inflating a view from XML.

    View(Context context, AttributeSet attrs, int defStyle)
    Perform inflation from XML and apply a class-specific base style.

    http://developer.android.com/referen...view/View.html

    Du coup, quand on créer une vue en java, on appelle le premier, et on ajoute la vue au content view grace à la méthode addContentView. Tout va bien.

    En XML, il fait appelle à la deuxieme, et comme c'est une vue personnalisée, il faut redéfinir le constructeur.
    Et là, je rebloque car les balises XML disponibles dans la classe View
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    android:minHeight="145px" 
    android:minWidth="145px"
    ne sont pas reconnues dans mon XML et donc, il ne retrouve pas ce qui lui permettrait de construire la vue (en particulier width and height)

    Je remets mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <com.dev.GView
    	android:id="@+id/content"
    	android:minHeight="145px" 
    	android:minWidth="145px"
    />
    Avec l'erreur : IllegalArgumentException: Width (0) and height (0) cannot be <=0

  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 : 41
    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
    Par défaut
    T'as essayé en mettant ça dans ton XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     android:layout_width="fill_parent"
    	    android:layout_height="fill_parent"

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 07/08/2014, 17h10
  2. Vue personnalisée et encodage UTF-8
    Par Janitrix dans le forum Zend Framework
    Réponses: 14
    Dernier message: 20/09/2007, 10h34
  3. vues personnalisées sous postgresql
    Par Dev_ps dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 12/06/2007, 11h22
  4. [RCP] Création de vue en XML
    Par jycronier dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 23/11/2006, 00h50
  5. [XSL] Différentes vues du XML
    Par clich dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/04/2005, 18h15

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