我应该将ViewHolder类变量设置为适配器中的实例变量吗?

时间:2018-08-02 07:57:18

标签: android instance-variables android-viewholder

我不确定如何解释,让我们先看一下代码

public class myBaseExpandableListAdapter extends BaseExpandableListAdapter {
/*-----------------------------------------------*/
    private GroupViewHolder groupViewHolder;//here?
/*-----------------------------------------------*/
    private class GroupViewHolder {
        TextView groupText;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.expand_list_group, null);
            groupViewHolder = new GroupViewHolder();
            groupViewHolder.groupText = convertView.findViewById(R.id.txt_expand_group);
            convertView.setTag(groupViewHolder);
        } else {
            groupViewHolder = (GroupViewHolder) convertView.getTag();
        }
    }
}

public class myBaseExpandableListAdapter extends BaseExpandableListAdapter {
    private class GroupViewHolder {
        TextView groupText;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
/*-----------------------------------------------*/
        GroupViewHolder groupViewHolder;//or here?
/*-----------------------------------------------*/
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.expand_list_group, null);
            groupViewHolder = new GroupViewHolder();
            groupViewHolder.groupText = convertView.findViewById(R.id.txt_expand_group);
            convertView.setTag(groupViewHolder);
        } else {
            groupViewHolder = (GroupViewHolder) convertView.getTag();
        }
    }
}

对于变量“ GroupViewHolder groupViewHolder” 可以将其设置为实例变量吗?

哪个是正确的(或更好),为什么?

0 个答案:

没有答案