搜索
 找回密码
 立即注册

简单一步 , 微信登陆

getview的性能最优化

作者:赖振军 | 时间:2016-11-2 10:00:17 | 阅读:4866| 显示全部楼层
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 + “”);




回复

使用道具 举报

大神点评1

bean.yang 发表于:2016-11-7 16:40:46
希望有更多的专业贴。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版