zoukankan      html  css  js  c++  java
  • 43、gridview或者listview的adapter优化

    1、在getview时,如果是一个textview,那么不用每次都new一个或者inflater直接返回,可以先判断convertview是否为空,如果为空则new或者inflate,否则直接返回convertview

    2、如果adapter数量太多,假设需要显示1000个数据,那么如果在getview时每次都是对inflate,那么是一种对资源的浪费,且卡顿现象严重,此时可以通过结合viewHolder提高效率

    举例:

    1、adapter的getview方法

    @Override
        public View getView( int pos, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            
                ViewHolderPushHistory holder;
                final int position = pos;
                
                if(convertView == null)
                {
                    
                    CommonUtils.LogWuwei(tag, "pushHistoryAdapter  getView position is "+pos);
                    
                    LayoutInflater inflater = (LayoutInflater)ctxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    
                    holder = new ViewHolderPushHistory();
                    
                    convertView = inflater.inflate(R.layout.gridview_history_item, null);
                    
                    holder.tv_serinal_num = (TextView)convertView.findViewById(R.id.textview_grdiview_history_item_serinal_num);
                    
                    holder.tv_whether_packaged = (TextView)convertView.findViewById(R.id.textview_grdiview_history_item_whether_packaged);
                    
                    holder.buttonContent = (TextView)convertView.findViewById(R.id.button_gridview_history_item_order_content);
                
                    holder.buttonTime = (TextView)convertView.findViewById(R.id.textview_grdiview_history_item_time);
                    
                    convertView.setTag(holder);
                }
                else
                {
                    holder = (ViewHolderPushHistory)convertView.getTag();
                }
                
                
                holder.tv_serinal_num.setText(serinal_num);
    
                holder.buttonContent.setText("鱼香肉丝");
    
                holder.tv_whether_packaged.setText("打包");                
                
                holder.buttonTime.setText(“2:12”);
                
                
            
                return convertView;
            
        }

    2、定义一个存储信息的类

     1 package com.shanfubaoAndroid.kitchenMealDone;
     2 
     3 
     4 import android.widget.TextView;
     5 
     6 public class ViewHolderPushHistory {
     7     
     8     
     9     public TextView tv_serinal_num;
    10     
    11     public TextView tv_whether_packaged ;
    12     
    13     public TextView buttonContent ;
    14     
    15     public TextView buttonTime ;
    16     
    17 
    18 }
  • 相关阅读:
    定制一个类似地址选择器的view
    3D版翻页公告效果
    一分钟搞定触手app主页酷炫滑动切换效果
    苹果版小黄车(ofo)app主页菜单效果
    基于SpringMVC+Ext.js的权限管理系统(无权限框架)
    使用 mybatis + flying-0.9.4 的电商后端
    iOS仿支付宝首页效果
    Android蓝牙
    JavaWeb Session详解
    原生JS实现的h5小游戏-植物大战僵尸
  • 原文地址:https://www.cnblogs.com/kunyashaw/p/4633890.html
Copyright © 2011-2022 走看看