2013-04-02 3 views
0
public static class ViewHolder{ 
     public TextView item1; 
     public TextView item2; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 
     ViewHolder holder; 
     if (v == null) { 
      LayoutInflater vi = 
       (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.document_item_row, null); 
      holder = new ViewHolder(); 
      holder.item1 = (TextView) v.findViewById(R.id.big); 
      holder.item2 = (TextView) v.findViewById(R.id.small); 
      v.setTag(holder); 
     } 
     else 
      holder=(ViewHolder)v.getTag(); 

     final DocumentResponse custom = entries.get(position); 
     if (custom != null) { 
      holder.item1.setText(custom.getCreateByFullName()); 
      holder.item2.setText(custom.getTitle()); 
     } 
     return v; 
    } 
  1. Quelqu'un peut-il me expliquer les paramètres de la méthode overridded. [getView(int position, View convertView, ViewGroup parent)]. J'ai besoin de savoir ce que chaque argument fait.quelques questions sur la classe adaptateur personnalisé

  2. J'ai une classe statique ViewHolder contenant mes composants de vue, alors pourquoi est-ce que je crée une instance de type nerw holder.

+0

http://stackoverflow.com/a/3864111/1168654 –

Répondre

0

Pour la méthode getView:

    la position
  • est l'index dans la liste, vous allez l'utiliser pour obtenir l'objet courant de la source de données
  • convertView est une vue ... qui est une vue renvoyée par la méthode getView pour une autre position, donc vous n'avez pas besoin de gonfler la vue pour chaque ligne, vous pouvez en réutiliser une. Parent est probablement le conteneur, mais je ne l'ai jamais utilisé.