SuperIC社区_

标题: getview的性能最优化 [打印本页]

作者: 赖振军    时间: 2016-11-2 10:00
标题: getview的性能最优化
public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
                convertView = LayoutInflater.from(mContext).inflate(R.layout.program_favorite_list_item, null);
                holder = new ViewHolder();
                holder.mText = (TextView) convertView.findViewById(R.id.program_favorite_edit_number);
                holder.text = (TextView) convertView.findViewById(R.id.program_favorite_edit_data);
                convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
            //tmpText.setText(mData.get(position).getChannelId());
        holder.mText.setText(String.valueOf(position+1));
        holder.text.setText(mData.get(position).getChannelName());
            return convertView;
        }class ViewHolder{
                 TextView mtext;
                 TextView text;
}


if (convertView == null) {
}else{
} //主要添加这个判断,具体原因我也不知道,应该可以用工具加判断和不加之间的对比可以得出结论。
如果在android开发中遇到时候可以参考这个方法。


由于在写这个方式时候遇到一个小问题,也主要自己对应用层的不太熟悉,所以才会犯低级的错误,当我想listview的的具体位置用textview显示出来时候我直接用holder.mText.setText(position);,很奇怪的是无法编译通过,然后通过查阅settext用法之后才明白,settext显示的是一个字符串,所以需要改为holder.mText.setText(String.valueOf(position+1));  或者 holder.mText.setText(position + “”);





作者: bean.yang    时间: 2016-11-7 16:40
希望有更多的专业贴。




欢迎光临 SuperIC社区_ (/) Powered by Discuz! X3.3