Tôi chỉ cố gắng hiểu rõ hơn về mẫu sau tôi thường xuyên sử dụng để tối ưu hóa ListView
Tại sao trong mẫu ViewHolder lớp ViewHolder nên tĩnh?
Chỉ đọc của tôi chỉ cho tôi biết lớp tĩnh bên trong được coi là lớp cấp cao nhất. Lợi ích của một điều như vậy so với một lớp thành viên (không tĩnh) là gì?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Comment comment = getItem(position);
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.mylayout, null);
holder.nickname = (TextView) ((ViewGroup) convertView).findViewById(R.id.nickname);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.nickname.setText(comment.getMember_nickname());
CharSequence
return convertView;
}
public static class ViewHolder{
TextView nickname;
}
bởi vì nếu không, lớp học được liên kết với cá thể, điều này hoàn toàn không cần thiết. – njzk2
@ njzk2: điều gì sẽ là nhược điểm? –
@ Jan1337z nhược điểm là bạn có một thể hiện của đối tượng lớp cho mỗi trường hợp của bộ điều hợp của bạn nếu ViewHolder không phải là tĩnh. – njzk2