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 problème ligne selectionnée


Sujet :

Composants graphiques Android

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut ListView problème ligne selectionnée
    Bonjour,

    Dans mon application, j'utilise un ViewPagerIndicator qui est un FragmentActivity qui lui même utilise deux Fragments sur laquelle je switch entre les deux.

    Sur l'un de ses deux Fragments, j'ai une ListView Personnalisé avec différent TextView dedans. Tout fonctionne normalement sauf que je n'arrive pas à mettre une autre couleur sur la ligne sélectionné.


    Code de ma ListView dans le layout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ListView
     
    android:id="@+id/lvListe"
     
    android:layout_width="fill_parent"
     
    android:layout_height="fill_parentA"
    android:listSelector="@color/transparent"
    >
     
    </ListView>
    Code de ma ligne personnalisé :

    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
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/list_selector"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
    </LinearLayout>

    Code de mon list_selector

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:state_enabled="false" android:state_focused="true"
            android:drawable="#FF699999" />
      <item android:state_pressed="true"
            android:drawable="#FF333333" />
      <item android:state_focused="true"
            android:drawable="#FF666666" />
    </selector>
    Même en appliquant c'est différentes couleur lorsque je clique ou reste focus dessus rien ne se passe.

    Cordialement,

  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
    Il n 'y a pas de couleur par défaut....
    Pour qu'une couleur soit assignée il faut que:
    a) enabled='true' et focused='true'
    ou
    b) pressed='true'
    ou
    c) focused='true'

    le cas (b) n'arrive que si pressed='true', or dans ce cas il y a de fortes chances pour que focused et enabled le soient aussi => (a)
    le cas (c) n'arrive que sur les items focused et disabled (ce qui n'existe pas j'imagine) et si enabled => (a)

    Donc finalement on ne passe quand dans le cas (a).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut problème toujours présent...
    Merci pour la réponse que tu as apporté mais le problème est toujours présent.

    Mon nouveau row_selector :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item 
         android:state_pressed="true" android:drawable="@color/GREEN" />
        <item android:state_selected="true" android:drawable="@color/RED" />
     	<item android:drawable="@color/RED" />
    </selector>
    Par défaut j'ai le couleur rouge et elle est bien présente. Lorsque je sélectionne ou presse ma liste view rien ne change...


    Si vous auriez une idée de là ou ça peut venir.

    Merci d'avance

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Il me semble qu'il y a 7 ou 8 states en tout.
    Essaye peut-être de compléter ton selector.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par hotcryx Voir le message
    Il me semble qu'il y a 7 ou 8 states en tout.
    Essaye peut-être de compléter ton selector.
    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
     
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- Non focused states -->
        <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/custom_tab_indicator_unselected" />
        <item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/custom_tab_indicator_selected" />
     
        <!-- Focused states -->
        <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/custom_tab_indicator_unselected_focused" />
        <item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/custom_tab_indicator_selected_focused" />
     
        <!-- Pressed -->
        <!--    Non focused states -->
        <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/custom_tab_indicator_unselected_pressed" />
        <item android:state_focused="false" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/custom_tab_indicator_selected_pressed" />
     
        <!--    Focused states -->
        <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/custom_tab_indicator_unselected_pressed" />
        <item android:state_focused="true" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/custom_tab_indicator_selected_pressed" />
    </selector>
    Avec un beaucoup plus complet ça fait pareil. Pourtant sur mon tab indicator ça fonctionne nickel. Donc je pense que mon problème ne vienne de mon selector mais un autre truc à activer :/

  6. #6
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:color="#FF699999"
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:drawable="#FF699999"
    Et essaye avec un pattern de 3 codes couleurs au lieu de 4.

    ex= #699999
    Si la réponse vous a aidé, pensez à cliquer sur +1

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par hotcryx Voir le message
    essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:color="#FF699999"
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:drawable="#FF699999"
    Et essaye avec un pattern de 3 codes couleurs au lieu de 4.

    ex= #699999
    Toujours le même soucis :/

  8. #8
    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
    j'avoue ne pas bien comprendre les selectors proposés en copie... aucun d'entre eux ne propose de valeur par défaut...

    Voici par exemple celui que j'utilise:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">    
     
        <item android:state_pressed="true" android:drawable="@color/red" />    
        <item android:state_checked="true" android:drawable="@color/yellow" />    
        <item android:state_selected="true" android:drawable="@color/dark_grey" />
        <item android:drawable="@color/light_grey" />
    </selector>
    Et qui fonctionne sans problème.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut problème toujours présent...
    Merci à toi de m'aidé mais ça ne fonctionne toujours pas...

    Donc code de mon xml ou j'ai une list view

    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
     
     
    <?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" >
     
        <ListView
       	    android:id="@+id/mainList"
       	    android:layout_width="fill_parent"
       	    android:layout_height="wrap_content"
       		android:listSelector="@android:color/transparent"
        />
    </LinearLayout>
    code de ma ligne modifié
    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
     
    <?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="wrap_content"
        android:orientation="horizontal"
       	android:background="@drawable/row_selector">
     
        <CheckBox
            android:id="@+id/checkBox_Sound"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
        />
                <TextView
                    android:id="@+id/tv_name_record"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:text="2012-13-05-22-14-10.mp3"
                    android:textSize="15dp"
                    android:textStyle="bold" />
     
                <TextView
                    android:id="@+id/tv_duration_sound"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="right"
                    android:gravity="right"
                    android:text="00:07" />
    mon selector -> row selector
    code fourni


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">    
     
        <item android:state_pressed="true" android:drawable="@color/RED" />    
        <item android:state_checked="true" android:drawable="@color/GREEN" />    
        <item android:state_selected="true" android:drawable="@color/abs__holo_blue_light" />
        <item android:drawable="@color/abs__bright_foreground_holo_dark" />
    </selector>
    A noter que j'effectue mes tests sur un Android 4.2.2 mais bon je pense pas que ça vienne de là dans des applications sur le market ça fonctionne nickel.

    Si vous avez une idée de comment je pourrait le résoudre suis preneur.

    Merci

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Mon problème est en partie résolu lorsque je vire ma checkbox ça fonctionne parfaitement sinon ça merde. Donc auriez-vous une idée pour que ça fonctionne également avec une checkbox ? ^^

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut Problème Résolu
    Le problème est maintenant résolu pour qu'une ligne apparaissent comme sélectionné avec une couleur de fond différent dans votre Listview Custom lorsqu'il y a un Checkbox il suffit de lui enlevé le focus et qu'il ne soit pas clickable. Ensuite, il ne vous reste plus qu'a gérer le check ou non check dans votre adapter.

    Propriété à mettre sur le CheckBox pour que la ligne apparaissent sélectionné avec une couleur de fond différent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <CheckBox
            android:id="@+id/checkBox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:clickable="false"
        />

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 01/07/2013, 16h03
  2. Réponses: 0
    Dernier message: 24/05/2012, 12h22
  3. [XL-2003] LISTVIEW problème avec suppression lignes
    Par goldfinger13 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2011, 00h04
  4. Réponses: 3
    Dernier message: 12/03/2008, 10h54
  5. [ComboBox] Recuperer la ligne selectionnée
    Par webbulls dans le forum Composants
    Réponses: 4
    Dernier message: 11/07/2005, 11h49

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