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 :

Problème de création d'un tableau dynamique


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Par défaut Problème de création d'un tableau dynamique
    Bonjour,

    le but de mon bout de programme ci-dessous permet de créer une seule ligne sous le format d'un tableau, par la suite viendra se rajouter plusieurs lignes.

    Problème:
    Mais je ne vois pas où j'ai pu me tromper dans le code.
    Lors du test du code aucune erreur dans le logcat mais aucun affichage
    j'ai juste l'image de fond de mon linearlayout.

    Pour info --> Je me trouve dans un fragment d'où l'utilisation de getActivity()


    Fichier xml
    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
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" 
        android:orientation="vertical"
        android:background="@drawable/fond"
        android:id="@+id/LayoutBelotte">
     
        <Space
             android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/btnInfoPartie"
            android:onClick="commncerPartie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"/>
        <Space
             android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
     
    </LinearLayout>

    Le code mis en commentaire s'affiche bien. (c'est un exemple)
    Fichier 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
     
                    LinearBelotte1=(LinearLayout)v.findViewById(id.LayoutBelotte); // situe dans la methode onCreateView(....)
                    LinearBelotte1.removeAllViewsInLayout();
    		LinearBelotte1.setOrientation(LinearLayout.VERTICAL);
     
    		/*
    		LinearLayout.LayoutParams TEST = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		TextView test = new TextView(getActivity());
    		test.setText("S'affiche bien");
    		LinearBelotte1.addView(test,TEST);
    		*/
     
    		LinearLayout.LayoutParams TEST = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		LinearLayout.LayoutParams TEST1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. WRAP_CONTENT) ;
    		LinearLayout.LayoutParams TEST2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams. FILL_PARENT ,LinearLayout.LayoutParams. FILL_PARENT) ;
    		TEST2.setMargins(2, 2, 2, 2);
     
    	    tabDefautCapteur1= new TableLayout(getActivity());
    	    tabDonnees1 = new TableRow(getActivity());
    	    tabDonnees1.setLayoutParams(TEST1);
     
    	    tabDonnees1.addView(generateTextView("Heures", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Capteur", TEST2,0));
    	    tabDonnees1.addView(generateTextView("N°", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Donnees", TEST2,0));
    	    tabDonnees1.addView(generateTextView("Rafraichissement", TEST2,0));
     
    	    // On attribut a la ligne du tableau les différentes cases crées
    	    tabDefautCapteur1.addView(tabDonnees1,TEST2);
    	    LinearBelotte1.addView(tabDefautCapteur1,TEST);
    Merci a tous ceux qui pourront m'aider

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Sans trop regarder, la racine de ton layout est déclaré verticalement. Or le premier élément "Space" a les paramètres suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Space
             android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
    D'une part les trois informations sont incohérentes entre elles (weight surcharge height dans ce cas).
    D'autre part, tu utilises mal la répartition des poids :
    Les éléments Space ont un poids de 1, et l'élément central a un poids de 0. Il aura donc une taille nulle.

    Ce layout suivant devrait suffire non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent">
     
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"/>
     
    </LinearLayout>

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Par défaut
    Pour te répondre Simon MARQUIS
    C'était pas vraiment la le problème
    mais j'ai pris compte de ta remarque et j'ai modifié mon fichier xml
    de la manière suivante :

    J'ai supprimé les Space et j'ai mis android:gravity="center" dans mon linearlayout

    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
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" 
        android:orientation="vertical"
        android:background="@drawable/fond"
        android:id="@+id/LayoutBelotte"
        android:gravity="center">
     
     
        <Button
            android:id="@+id/btnInfoPartie"
            android:onClick="commncerPartie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
     
     
    </LinearLayout>
    J'avais mis les space afin de placer mon bouton au centre de l’écran
    car le android:layout_gravity="center" que j'avais placé dans le bouton ne marchait pas
    il y a juste android:layout_gravity="center_horizontal" et "center_vertical" qui fonctionne.

    Problème :
    Mon problème reste toujours le même car comme on peut le constater dans le code java je supprime tout les éléments situe dans mon linearlayout avant de construire mon tableau.

    A l’heur actuel:
    Tout les éléments sont bien supprimés et je me retrouve avec mon image de fond (inséré par mon linearlayout). Aucun autre élément apparent.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Ah, au temps pour moi, je n'avais pas lu ta partie "code".
    Pour autant, je vais certainement répondre encore à côté : mais pourquoi tu n'utilises pas un fichier xml ? Ton tableau doit être dynamique ?
    Car d'après ce que je vois, tu ajoutes 5 lignes au tableau (donc rien de dynamique)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 39
    Par défaut
    Pour la simple raison que je viens changer l'affichage en fonction des choix de l'utilisateur

    Dans un premier temps.

    il arrive sur un des fragment

    1er Vue:
    - il peut cliquer sur un bouton qui lui demande si il veut accéder au informations suivante.

    2 Vue:
    - Si il vient cliquer sur ce bouton je supprime le bouton et je construit en dynamique plusieurs edittext ou il peut rentrer son nom, prénom etc.

    3 Vue:
    - Si il valide alors je viens supprime tout les edittext etc et je construit en dynamique un tableau qui contiendra les données rentrer au préalable.


    Voila j’espère que tu comprend mieux ce que je veux faire.
    Je fais cela en gardant toujours le même fichier xml.

    Je n'ai pas essayé d'autre méthode comme:
    - Avoir plusieurs fichier xml que j'appelle en fonction des actions réalisé par l'utilisateur lors des appuis sur les boutons.

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    C'est pourtant la bonne....

    3 Fragments... chaque fragment remplaçant le précédent....
    ou...
    3 Activités...

    La différence entre les deux se situant dans la manière dont l'utilisateur voit l'activité... Arrive-t-il systématiquement sur la première vue en démarrant l'application ? etc...

Discussions similaires

  1. Problème de création d'un tableau
    Par fog4000 dans le forum LabVIEW
    Réponses: 7
    Dernier message: 04/06/2007, 14h53
  2. Création d'un tableau dynamique
    Par Faro dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/04/2007, 09h03
  3. Création d'un tableau dynamique avec XSL-FO
    Par lionelbrizuela dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/01/2006, 11h04
  4. Problème avec PtInRegion et un tableau dynamique
    Par mduse dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2005, 09h29

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