我只是想更好地理解以下我經常用來優化的模式ListView
爲什麼在ViewHolder模式下ViewHolder類應該是靜態的?
我的讀物只指出了靜態內部類被視爲頂級類的事實。與類成員(非靜態)相比,這樣的事情有什麼好處?
@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;
}
因爲如果不是,該類鏈接到實例,這是完全不需要的。 – njzk2
@ njzk2:缺點是什麼? –
@ Jan1337z缺點是,如果ViewHolder不是靜態的,那麼您的適配器的每個實例都有一個類對象的實例。 – njzk2