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

Android Discussion :

Problème avec setViewValue


Sujet :

Android

  1. #1
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut Problème avec setViewValue
    Bonjour,

    J'ai une listview, remplie par un simpleCursor dans lequel je voudrais ajouter des catégories de date par rapport aux éléments.

    Voici le 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public void DataBind() throws ParseException{
        	Cursor c = db.recupererInfoBC();
        	startManagingCursor(c);
        	SimpleCursorAdapter adapter = new SimpleCursorAdapter(this.getBaseContext(), R.layout.recup_listinfobc, c,
        	new String[]{"numero_bc", "heure_depart", "ville_depart", "heure_arrivee", "ville_arrivee", "destination", "nb_pers_prev", "nb_pers_prev", "nb_pers_prev", "date_dep"},
        	new int[]{R.id.textNumeroBC, R.id.textHeureDepart, R.id.textVilleDepart, R.id.textHeureRetour, R.id.textVilleRetour, R.id.textDestination, R.id.textNbPersPrev, R.id.OptionColor, R.id.OptionColor2, R.id.date} );
     
        	adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
        		public boolean setViewValue(View view, Cursor cursor, int columnIndex){
        		    if (view.getId() == R.id.OptionColor) {
     
        		        final String colorIR = cursor.getString(cursor.getColumnIndex("is_read"));
        		        final String colorIO = cursor.getString(cursor.getColumnIndex("is_ok"));
     
        		        if(colorIR.equals("null") && colorIO.equals("null"))
        		        {
        		        	((View) view.getParent()).setBackgroundColor(android.graphics.Color.WHITE);
        		        }
        		        else if(!(colorIR.equals("null")) && colorIO.equals("null"))
        		        {
        		        	((View) view.getParent()).setBackgroundColor(android.graphics.Color.parseColor("#F99DA6"));
        		        }
        		        else if(!(colorIR.equals("null")) && !(colorIO.equals("null")))
        		        {
        		        	((View) view.getParent()).setBackgroundColor(android.graphics.Color.parseColor("#A4F7A4"));
        		        }
        		       	return true;
        		    }
        		    if (view.getId() == R.id.OptionColor2) {
        		    	String dateprec;
        		    	String datecour = cursor.getString(cursor.getColumnIndex("date_dep"));
        		    	if(cursor.isFirst())
        		    	{
        		    		dateprec = "NULL";
        		    	}
        		    	else
        		    	{
        		    		cursor.moveToPrevious();
        		    		dateprec = cursor.getString(cursor.getColumnIndex("date_dep"));
        		    	}
     
        		    	if(datecour.equals(dateprec))
        		    	{
        		    		((View) view.getParent()).setVisibility(8);
        		    	}
        		    }
        		    return false;
        		}
        	});
     
        	listview.setAdapter(adapter);
        	listview.setOnItemClickListener(this);
        }
    Dans la méthode setViewValue je change tout d'abord la couleur de fond des élément suivant une valeur dans chaque ligne du cursor. Cela fonctionne bien.
    Mais dans la seconde partie de la méthode je créer des catégorie de date en mettant a GONE ou pas une partie de l'élément a savoir un layout au dessus en guise de titre si jamais la date précédente est égale à la date courante.

    J'ai 7 élément, dont les dates sont 21, 22, 23, 24 et 25

    Il me manque une catégorie... Cela m'affiche :

    -----21 Mai-----
    élément
    élément
    -----22 Mai-----
    élément
    élément => Problème celui ci est du 23, en comparant avec la date précédente le layout n'aurait pas du passer a GONE...
    -----24 Mai-----
    élément
    élément
    -----25 Mai-----
    élément

    De plus si je clique sur un élément et que je reviens sur ma vue juste après, cette fois j'ai bien la catégorie du 23 mais la première et la dernière disparaisse...

    Un vrai casse tête...

  2. #2
    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
    Bonjour

    Essaye déjà de mettre des traces dans ton code pour savoir ce qui se passe, c'est vraiment pas facile de vous aider comme cela....

    Pour mettre des traces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.i("TAG", "message");
    i info,d debug,w warning,e erreur, à toi de voir
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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