jestem po prostu staramy się mieć lepsze zrozumienie poniższego wzoru I regularnie korzysta w celu optymalizacji ListView
Dlaczego we wzorcu ViewHolder klasa ViewHolder powinna być statyczna?
Moje odczyty tylko wskazał mi na to, że statyczne klasy wewnętrzna jest traktowany jako najwyższej klasy poziomu. Jaka jest korzyść z takiej rzeczy w porównaniu z klasą członka (nie statyczną)?
@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;
}
ponieważ jeśli nie jest, klasa jest połączona z instancją, co jest całkowicie zbędne. – njzk2
@ njzk2: co byłoby wadą? –
@ Jan1337z wadą jest to, że masz instancję obiektu klasy dla każdej instancji adaptera, jeśli obiekt ViewHolder nie jest statyczny. – njzk2