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 :

SetBackgroundColor lors de l'alimentation d'une listView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut SetBackgroundColor lors de l'alimentation d'une listView
    Bonjour,

    j'ai une listView qui comporte une image avec une partie transparente, et j'aimerai qu'au moment où j'adapte ma listView, lui spécifier une couleur (qui est propre à chaque objet)

    Est-ce que c'est possible de le faire dans la boucle qui crée ma hashmap, ou bien est-ce que je dois créer une nouvelle boucle une fois ma listView alimentée pour mettre à jour chaque background de l'image en question ?

    Mon code au cas où... (donc il faudrait pouvoir rajouter une couleur au background de l'id img...)

    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
     
    //On récupère les données parcourues dans une liste grâce au contentHandler
                          List<Niveau> listeNiveau = handlerCat.getParsedData();
     
                          //On alimente notre listView avec les données parcourues
     
                          for(int i=0; i<listeNiveau.size(); i++)
                          {
                              //Création d'une HashMap pour insérer les informations des items de notre listView
                              map = new HashMap<String, String>();
     
                              //on insère le nom de la catégorie dans un item "titre" de la HashMap
                              map.put("titre", listeNiveau.get(i).getNom());
                              //on insère la description de la catégorie dans un item "description" de la HashMap
                              map.put("description", listeNiveau.get(i).getDescription());
                              //on insère l'id de la catégorie dans un item "id" de la HashMap (qu'on transforme en String car
                              //on a déclaré la HashMap comme cela 
                              map.put("id", String.valueOf(listeNiveau.get(i).getId()));
                              //on insère la référence à l'image
                              map.put("img", String.valueOf(R.drawable.plot));
                              //enfin on ajoute cette hashMap dans la arrayList
                              listItem.add(map);
                          }
     
                          //Création d'un SimpleAdapter qui se chargera de mettre les items présent dans notre list (listItem) dans la vue affichageitem
                          SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.affichageitem,
                                 new String[] {"img", "titre", "description"}, new int[] {R.id.img, R.id.titre, R.id.description});
     
                          //On attribut à notre listView l'adapter que l'on vient de créer
                          listeCatégorie.setAdapter(mSchedule);

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    Auto résolution (merci le coup de fil à un ami ^^ )

    Tout simplement surcharger la méthode GetView de l'adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Création d'un SimpleAdapter qui se chargera de mettre les items présent dans notre list (listItem) dans la vue affichageitem
                          SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.affichageitem,
                                 new String[] {"img", "titre", "description"}, new int[] {R.id.img, R.id.titre, R.id.description}){
     
                        	  	@Override
                        	  	public View getView(int position, View convertView, ViewGroup parent) {
                        	  	  View view = super.getView(position, convertView, parent);
                        	  	  int colorPos = Color.parseColor(listeNiveau.get(position).getCouleur());
                        	  	  view.findViewById(R.id.img).setBackgroundColor(colorPos);
                        	  	  return view;
     
                        	  }
    et du coup une méthode pour passer un String en Color, impossible de parser en integer une chaine de format 0xFF00FF00 alors que ça marche en dur :/

  3. #3
    Expert confirmé

    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
    Par défaut
    Bonjour,

    As tu essayé avec cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static int argb (int alpha, int red, int green, int blue)
    http://developer.android.com/referen...0int,%20int%29

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    Vu que je parse du xml depuis un serveur, ça m'a paru plus simple de changer le format de ma couleur que de récupérer chacune de ses composantes, mais ça aurait sans doute pu être une solution !

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

Discussions similaires

  1. [XL-2003] Alimentation d'une listview par les différentes valeurs d'une colonne
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/12/2012, 09h52
  2. Alimenter une listView depuis XML
    Par anastunisie dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 08/04/2011, 15h03
  3. Réponses: 0
    Dernier message: 11/03/2010, 17h45
  4. Focus automatique dans une listview lors d'un SelectedItems
    Par Chacha35 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/09/2009, 11h19
  5. Comment récuperer un élément dans une listview lors d'une sélection
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/04/2007, 02h37

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