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 :

[Debutant] gerer le backgroundColor ListView classique avec un adapter


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Points : 67
    Points
    67
    Par défaut [Debutant] gerer le backgroundColor ListView classique avec un adapter
    Bonjour,

    j'aimerai savoir si c'est possible de spécifier le backgroud color d'une listView classique c'est a dire je n'utilise pas un ensemble de textView pour construire ma liste j'utilise tout simplement une ListView et j'aimerai à partir de mes données changer la couleur de mon string.... étant donné que il ne s'agit pas d'un view en tant que tel je suis un peu perdu
    voici mon code

    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
    31
    32
    33
    34
    35
     
     
    		final StableArrayAdapter adapter = new StableArrayAdapter(this,
    			        android.R.layout.simple_list_item_1, list); //list est un ArrayList de string que je construit à partir de ma requete
     
    		 myList.setAdapter(adapter);
     
    	     private class StableArrayAdapter extends ArrayAdapter<String>
    	    {
     
    	    HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
     
    	    public StableArrayAdapter(Context context, int textViewResourceId, List<String> objects) 
    	    {
    	    	super(context, textViewResourceId, objects);
     
    	    	for (int i = 0; i < objects.size(); ++i) 
    		    {	
    		        mIdMap.put(objects.get(i), myListHelper.get(i).key);
    		    }
    	    }
     
    	    @Override
    	    public long getItemId(int position) 
    	    {
    	      String item = getItem(position);
    	      return mIdMap.get(item);
    	    }
     
    	    @Override
    	    public boolean hasStableIds() 
    	    {
    	      return true;
    	    }
    	}
    Donc mon idée est de changer le background color quand je load ma listView en fonction des éléments que je reçois... j'ai vu beaucoup d'exemple utilisant une liste de texView puis qui set le background Color.. suis-je obligé de changer ma structure ou c'est possible de garder mon stable arrayAdapter et de gérer cette fonctionnalité?

    Merci pour vos idées

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 47
    Points
    47
    Par défaut
    Bonjour, est-ce la couleur de fond du ListView que tu voudrais changer ou c'est par rapport au TextView qui peuplent ta ListView (une couleur différente par éléments) ?

    Si c'est la couleur général du ListView :

    un simple setBackgroundColor devrait être suffisant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     myList.setBackgroundColor(Color.RED);
    Si c'est une couleur différente par élément dans ta ListView ( myList ) :

    tu dois alors surcharger la méthode getView

    ajoute cet méthode à ta classe StableArrayAdapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public View getView(int pos, View convertVw, ViewGroup parent) {
        View view = super.getView(pos, convertVw, parent);
        TextView txt = (TextView) view.findViewById(android.R.id.text1); //TextView du simple_list_item_1
    //Condition
        txt.setBackgroundColor(Color.RED);
    //
        return view;
    }
    après à toi de gérer tes structures conditionnelles pour appliquer une couleur différent en fonction de la position ou autres.

    tu peux trouver ICI de quoi est composé le simple_list_item_1 layout

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/02/2006, 18h31
  2. Réponses: 7
    Dernier message: 07/02/2006, 15h04
  3. Gérer plusieurs configrationde carte graphique avec Xorg ?
    Par narmataru dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 21/11/2005, 09h38
  4. Gérer ce qui se lance avec linux
    Par Harry dans le forum Mandriva / Mageia
    Réponses: 7
    Dernier message: 26/07/2004, 16h05
  5. [debutant] pour debbuger un petit prog avec menu
    Par niluge01 dans le forum Windows
    Réponses: 3
    Dernier message: 22/11/2003, 14h03

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