2010-11-27 24 views
1

J'ai un problème avec ce code. Je modifie le contenu de ArrayAdapter et ordonné en tant qu'argument à l'objet contenant le tableau. Le problème est que modifier la vue (est une vue de liste) avec des choses différentes, des icônes, changer l'arrière-plan, etc. Le fait est qu'en faisant le tri semble mélanger les propriétés de certaines vues. Par exemple, l'arrière-plan qui s'est étendu à un autre en raison du déplacement et des choses comme:Problème avec View trier ArrayAdapter plusieurs fois

public class IconLVAdapter extends ArrayAdapter<Datos> { 

     private List<Datos> objetos; 
     private boolean online; 

     public IconLVAdapterBuses(Context context, int textViewResourceId, List<Datos> objetos, boolean online) { 
       super(context, textViewResourceId, objetos); 
       this.objetos = objetos; 
       this.online = online; 
     } 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
       View v = convertView; 
       if (v == null) { 
        LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        v = vi.inflate(R.layout.rowlist, null); 
       } 
       Datos o = objetos.get(position); 
       if (o != null) { 

         TextView tvNum = (TextView) v.findViewById(R.id.num); 

         if (o.getpOrigen()==null && tvNum!= null) 
          tvNum.setText(o.getnum()); 
         else{ 
             ************** omitido ************** 
         } 

       } 
       return v; 
     } 



     public void refreshArray(){ 
      this.sort(new Comparator<Datos>() { 
       public int compare(Datos object1, Datos object2) { 
        return object1.compareTo(object2); 
       }; 
      }); 
      this.notifyDataSetChanged(); 
     } 

Des idées? Merci

Répondre