I'm trying to learn Android programming. And I can't find an explication to this algorithm :
public View getView(int r, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// Si la vue n'est pas recyclée
if(convertView == null) {
// On récupère le layout
convertView = mInflater.inflate(R.layout.item, null);
holder = new ViewHolder();
// On place les widgets de notre layout dans le holder
holder.mNom = (TextView) convertView.findViewById(R.id.nom);
holder.mNumero = (TextView) convertView.findViewById(R.id.numero);
holder.mPhoto = (ImageView) convertView.findViewById(R.id.photo);
// puis on insère le holder en tant que tag dans le layout
convertView.setTag(holder);
} else {
// Si on recycle la vue, on récupère son holder en tag
holder = (ViewHolder)convertView.getTag();
}
// Dans tous les cas, on récupère le contact téléphonique concerné
Contact c = (Contact)getItem(r);
// Si cet élément existe vraiment…
if(c != null) {
// On place dans le holder les informations sur le contact
holder.mNom.setText(c.getNom());
holder.mNumero.setText(c.getNumero());
}
return convertView;
}
- Why dos the writer checked if convertView is null and if it's not ?
- What's the need of the ViewHolder pattern in this contexte, please ?
Can someone help me to understand it please ?
Thanks in advance.