Mam niejasne problemy dotyczące recyklingu widoków w metodzie getView niestandardowego adaptera tablicowego.Recykling widoków w niestandardowym adapterze tablicowym: jak dokładnie jest obsługiwany?
Rozumiem, że elementy są ponownie używane, ale skąd mam wiedzieć, co należy zaimplementować w pierwszej części instrukcji if, a co w drugim?
Teraz mam następujący kod. Doszedłem do tego pytania z powodu upuszczenia kodu w drugiej części instrukcji, co skutkuje listą pierwszych 9 elementów, które powtarzają się wielokrotnie, zamiast wszystkich elementów. Nie wiedziałem dokładnie, co powoduje to dokładnie ...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
title = getItem(position).getTitle();
size = calculateFileSize(position);
txtTitle = (TextView) row.findViewById(R.id.txtTitle);
tvFileSize = (TextView) row.findViewById(R.id.tvFileSize);
txtTitle.setText(title);
tvFileSize.setText(size);
} else {
title = getItem(position).getTitle();
size = calculateFileSize(position);
txtTitle = (TextView) row.findViewById(R.id.txtTitle);
tvFileSize = (TextView) row.findViewById(R.id.tvFileSize);
txtTitle.setText(title);
tvFileSize.setText(size);
}
return row;
}
Dziękuję wszystkim za szybką i dobre wyjaśnienie ! Mam trochę czytania/oglądania do zrobienia :) Naprawdę to doceniam! –
możliwy duplikat [dlaczego działa ViewHolder pattren?] (Http://stackoverflow.com/questions/5973917/why-does-the-viewholder-pattren-work) –