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 :

getView et problème au moment du Scroll


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de xlkiller
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Par défaut getView et problème au moment du Scroll
    Bonjour,

    J'affiche une liste d’élément dans un TextView scrollable de cette facon:
    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
    class IconicAdapter extends ArrayAdapter<String>
                {
                	IconicAdapter() {
                		super(getActivity(), R.layout.custom, R.id.label, myList);
                	}
     
                	public View getView(final int position, View convertView,ViewGroup parent)
                	{               		
                        View row = super.getView(position, convertView, parent);
     
    	            	ImageView icon=(ImageView)row.findViewById(R.id.icon);
    	            	TextView text =(TextView)row.findViewById(R.id.label);
    	            	File tmpFichier = new File(myList.get(position));
    	                tmpFichier.getName();
    	            	int posPoint = tmpFichier.getName().lastIndexOf('.');
    	            	String Extension = tmpFichier.getName().substring(posPoint + 1);
    	            	String Name = tmpFichier.getName().substring(0, tmpFichier.getName().length() - 4);
     
    	            	Matcher m = Pattern.compile("$").matcher(Name);
                		m.find();
     
    	            	if (Extension.toString().equals("sec") && Extension.toString() != "pdf")
    	            	{
    	            		LENGTH = m.end() + 3;
    	            		icon.setVisibility(View.GONE);
    	            		row.setOnClickListener(null);
    	                    //row.setOnLongClickListener(null);
    	                    //row.setLongClickable(false);
    	                    text.setTypeface(null, Typeface.BOLD);
    	                    text.setTextColor(Color.WHITE);
    	                    text.setText(Name);
    	                    text.setBackgroundResource(R.color.black);
    	                    text.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
    	                    text.setGravity(Gravity.RIGHT | Gravity.CENTER);
    	                    text.setText(Name);
    	            	}
    	            	else
    	            	{
    		            	icon.setImageResource(getResources().getIdentifier(Extension, "drawable", getActivity().getPackageName()));
    		            	text.setText(Name.substring(LENGTH));
    	            	}
    	            	return(row);
                	}
                }
                setListAdapter(new IconicAdapter());
            }
    Dés le lancement de l'application l'affichage est parfait, mais dés que je scroll le contenu change de façon aléatoire ... un vrai bordel quoi.

    Auriez vous une idée a me soumettre ?

    Merci.

  2. #2
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Parceque le code sera utilisé sur d'anciennes views....

    Les if/else du coup sont déconseillés, il faut toujours tout remettre à l'état initial...

    Par exemple:
    Une view est créée en tombant dans le cas 1... on fait text.setTypeface(null, Typeface.BOLD);
    Puis plus tard elle est réutilisée pour une entrée dans le cas 2... on ne fait jamais de text.setTypeface(null, ...); ... du coup ça reste en 'bold'

    Pareil pour l'icon, qu'on "supprime" de la vue dans le cas 1, mais qu'on ne passe pas en visible dans le cas 2.


    Ceci dit, dans le cas présent, il peut être interessant d'utiliser deux layouts... 1 pour chaque cas...
    Adapter.getViewTypeCount() renvoit alors 2
    Adapter.getViewType() regarde si on est dans le cas 1 ou 2
    Adapter.getView() n'appelle plus super.getVeiw mais fait son propre inflate en fonction du type, sur layout1 ou layout2

  3. #3
    Membre averti Avatar de xlkiller
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Par défaut
    Merci beaucoup, en remettant a l'état initial ca fonctionne parfaitement.

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

Discussions similaires

  1. [GIT]Problème au moment de push
    Par student_php dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 05/01/2012, 21h02
  2. Problème au moment du build
    Par TOPGUN89 dans le forum Eclipse
    Réponses: 1
    Dernier message: 06/07/2010, 19h52
  3. probléme au moment de la création d'une nouvelle classe
    Par Djug dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 22/01/2009, 11h19
  4. Lecteur mp3 : problème au moment de la publication
    Par zerojanvier04 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 20/08/2008, 01h35
  5. Réponses: 2
    Dernier message: 12/01/2007, 13h45

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