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 :

Changer couleur texte dans un ListView


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Changer couleur texte dans un ListView
    Bonjour,

    J'aimerai savoir comment on fait pour changer la couleur du texte des éléments qui sont présent dans une ListView ?

    Il n'y a pas de paramètre "textColor" présent dans une ListView malgré la présence d'un "backgroundColor"...

    J'aimerai mettre le texte en blanc et le fond en noir (pour le fond ça ca backgroundColor marche très bien ), l'inverse pique un peu trop les yeux ^^

    Dois-on passer obligatoirement par un style pour que cela marche ?

    Je vous remercie par avance. ;-)

  2. #2
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Tu confonds "ListView" et le layout des items qu'elle contient...

    La ListView ne devrait pas avoir de fond... tout juste un "hintColor" pour le fading des items.
    Par contre les list-items eux peuvent avoir le fond que tu veux... et le text-view dedans, la couleur que tu choisis... puisque tu fais le layout toi-même.

    Autre solution, si tu veux conserver les layouts natifs (ce que je fais quasiment tout le temps), utiliser le "thème"...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Je différencie bien le layout de la listview mais après moultes tentatives... je ne voit pas trop comment faire... même avec le style ça ne marche pas... (voir plus bas)

    En gros voici mon Activity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <!-- style="@style/Dark"-->
     
        <ListView
            android:id="@+id/missionsListView"        
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
     
     </LinearLayout>
    Que ça soit sur le ListView ou le LinearLayout y a pas de "textColor"
    par contre sur les deux on peut mettre le background comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:background="@color/black"
    j'ai appliquer un style sur mon "LinearLayout" :
    avec le style suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <style name="Dark">
            <!-- <item name="android:background">#000000</item>-->
            <item name="android:textColor">#FFFFFF</item>
            <item name="android:background">#000000</item>       
        </style>

    et le résultat c'est que tout apparaît en noir même le texte --''

    donc je vois pas trop comment faire ?

    merci de m'éclairer là dessus

  4. #4
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non c'est bien ce que je dis... tu confonds.... Le mot clé dans mon message était le layout DES ITEMS.
    La tu ne parles que de la ListView (et du layout qui l'a contient qui ne nous intéresse en rien.... et là tu ne vas modifier que la "view" englobante des items, pas les items eux même.

    Maintenant quand tu utilises cette ListView, dans le code, tu lui passe un Adapter.
    Cet Adapter a (quasi-toujours) en paramètres un "LAYOUT" pour les items.
    C'est CE layout qui va définir la couleur du texte.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Okay, merci je pige mieux c'est donc mon "simple_list_item_1" qu'il faut que je "style" à moins que je créer un nouveau layout pour les "listview"

    je vais tester ça merci beaucoup


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    missionsListView = (ListView)this.findViewById(ResID);
    int layoutID = android.R.layout.simple_list_item_1;
    aa = new ArrayAdapter<MissionData>(this, layoutID , missions);
    missionsListView.setAdapter(aa);

  6. #6
    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
    A toi de voir si tu préfère le faire à partir d'un xml personnalisé (layout_item), ou à partir de ton Adapater personnalisé (getView), tout dépends de ton besoin.

    En gros si la couleur choisi dépends des sélections ou n'existe pas alors le xml répondra à ta question. Ici les options

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize=["true" | "false"]
    android:dither=["true" | "false"]
    android:variablePadding=["true" | "false"] >
    <item
    android:drawable="@[package:]drawable/drawable_resource"
    android:state_pressed=["true" | "false"]
    android:state_focused=["true" | "false"]
    android:state_hovered=["true" | "false"]
    android:state_selected=["true" | "false"]
    android:state_checkable=["true" | "false"]
    android:state_checked=["true" | "false"]
    android:state_enabled=["true" | "false"]
    android:state_activated=["true" | "false"]
    android:state_window_focused=["true" | "false"] />
    </selector>


    Si cela dépends d'un éléments que tu auras en dynamique, alors l'adapter répondra à ta question. pour modifier la vue d'un élément depuis ton adpater , dans la fonction getView on peut intéragir sur les Views composant l'élément, du coup tu fais ce que tu veux par éléments.

    un exemple :
    http://developer.android.com/guide/t...-resource.html

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par bruno2356 Voir le message
    Okay, merci je pige mieux c'est donc mon "simple_list_item_1" qu'il faut que je "style" à moins que je créer un nouveau layout pour les "listview"

    je vais tester ça merci beaucoup


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    missionsListView = (ListView)this.findViewById(ResID);
    int layoutID = android.R.layout.simple_list_item_1;
    aa = new ArrayAdapter<MissionData>(this, layoutID , missions);
    missionsListView.setAdapter(aa);
    Bonjour, jusqu'ici j'ai bien compris, toutefois comment créer un nouveau layout pour les listview? Où le créer, et avec quels attributs?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/10/2006, 01h29
  2. [C#] Changer couleur texte d'une toolbar
    Par djoao dans le forum Windows Forms
    Réponses: 15
    Dernier message: 01/05/2006, 19h32
  3. [CSS]Changer couleur texte à partir d'une limite horizontale
    Par mathieu7497 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/04/2006, 23h34
  4. [Débutant]Changer du text dans un tableau
    Par Azimel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/09/2005, 18h38
  5. [MFC] Changer le texte dans la barre de statut
    Par karl3i dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 13h15

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