Tôi đang gặp sự cố không rõ ràng liên quan đến việc tái chế chế độ xem trong phương thức getView của bộ điều hợp mảng tùy chỉnh.Chế độ xem tái chế trong bộ điều hợp mảng tùy chỉnh: chính xác nó được xử lý như thế nào?
Tôi hiểu rằng các phần tử được sử dụng lại, nhưng làm cách nào để biết chính xác những gì cần thực hiện trong phần đầu tiên của câu lệnh if và điều gì trong phần thứ hai?
Hiện tại tôi đang có mã sau. Tôi đã đưa ra câu hỏi này do bỏ mã trong phần thứ hai của câu lệnh dẫn đến danh sách 9 phần tử đầu tiên, được lặp lại nhiều lần thay vì tất cả các phần tử. Tôi thực sự không biết điều gì đang gây ra chính xác điều này ...
@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;
}
Cảm ơn tất cả các bạn cho lời giải thích nhanh chóng và tốt ! Có một số đọc/xem để làm :) Thực sự đánh giá cao nó! –
có thể trùng lặp của [tại sao các ViewHolder pattren làm việc?] (Http://stackoverflow.com/questions/5973917/why-does-the-viewholder-pattren-work) –