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 :

Listview affichant plusieurs données par page


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9
    Points : 16
    Points
    16
    Par défaut Listview affichant plusieurs données par page
    Bonjour,
    Je cherche depuis plusieurs jours une solution à une application Android que je suis en train d’élaborer : je voudrais afficher les résultats d’une sélection en database qui se présenterait sous la forme suivante :

    XXXXXXXX YYYYYYYYYY ZZZZZZZZZZ
    XXXXXXXX YYYYYYYYYY ZZZZZZZZZZ
    XXXXXXXX YYYYYYYYYY ZZZZZZZZZZ
    XXXXXXXX YYYYYYYYYY ZZZZZZZZZZ
    Chaque ligne affiche 3 colonnes de ma database, une ligne représente une ligne de la database.
    J’obtiens ces éléments à l’aide d’un curseur, pas de pb pour y arriver. Evidemment, le nombre de lignes sélectionnées est variable et ne tient pas forcément sur l’écran d’un smartphone.
    Je suis passé par une Listview, mais je n’ai trouvé sur le web aucun exemple affichant plusieurs données par ligne. J’ai provisoirement mis en place une solution de secours consistant en la mise en place de 3 Listview verticales (une pour les données XXXXXXXX, une pour YYYYYYYYYY et une pour ZZZZZZZZZZ. Mais, vous en conviendrez, cette solution n’est pas propre ! Je ne vois pas comment procéder autrement sachant qu’il n’y a qu’un id possible par Listview.
    Autre contrainte : je veux pouvoir mettre en place des styles de texte différents pour chacune des 3 données de la ligne.
    Etant plus habitué à travailler en html où cette configuration ne pose aucun pb, je ne peux pas supposer qu’il n’existe pas de solution sous Android !
    Merci à tous ceux qui pourront m’éclairer ….

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Pourquoi ne pas passer par une seule ListView (ou RecyclerView), avec les items étant 3 TextView (à priori) ? Ta cellule sera donc un truc de ce genre :
    Code XML : 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
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
     
        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
     
    </LinearLayout>

    Une seule requête suffit pour avoir tes 3 données, et vu leur disposition, elles sont liées entre elles, j'imagine.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse rapide Hizin, je* ne savais pas que l'on pouvait placer des Textview à* l'intérieur d'un Listview.
    Mais je me pose la question suivante : où placer android:id="@+id/listView"
    qui fait le lien avec mon curseur ? Il en faudrait 1 par Textview, ce qui me semble impossible.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Il faudrait nous fournir ton code (la méthode de récupération des informations ainsi que l'Activity dans laquelle se trouve la ListView et le XML correspondant).
    J'imagine que tu utilises une ListView avec un CursorAdapter et un layout de cellule directement pris d'Android (sans doute android.R.layout.activity_list_item).

    Il faudra que tu te crées ton propre Adapter, qui héritera d'un CursorAdapter. Dans ton Adapter, tu auras 2 méthodes qui te permettront d'utiliser la vue (layout) de ton choix pour la cellule.
    La méthode newView(Context, Cursor, ViewGroup) te permettra de créer la vue de la cellule. La méthode bindView(View, Context, Cursor) te permettra de remplir celle-ci avec les informations qui vont bien.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre à l'essai
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9
    Points : 16
    Points
    16
    Par défaut
    Hizin, je suis en déplacement pour le reste* de la semaine. J'essaie de mettre en oeuvre ta solution dès mon retour et je tiens au courant. Merci à toi.

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

Discussions similaires

  1. Afficher les données par PHP : la page charge indéfiniment
    Par smilly dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 01/04/2013, 22h01
  2. Réponses: 24
    Dernier message: 09/07/2007, 13h08
  3. afficher une personne par page
    Par robocop2776 dans le forum IHM
    Réponses: 5
    Dernier message: 04/06/2007, 16h57
  4. [AJAX] Afficher 3 messages par page dans un livre d'or
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/11/2006, 11h17
  5. [MySQL] afficher plusieurs enregistrements par page par page à la volée
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/03/2006, 12h22

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