zoukankan      html  css  js  c++  java
  • 万能Adapter以及ViewHolder性能优化

    //CommonAdapter

    import
    android.content.Context; import android.widget.BaseAdapter; import java.util.List; /** * Created by Administrator on 2016/1/28. */ public abstract class CommonAdapter<T> extends BaseAdapter { private List<T> mDatas; private int LayoutId; private Context context; public CommonAdapter(List mDatas,int layoutId,Context context){ this.mDatas=mDatas; this.context=context; this.LayoutId=layoutId; } @Override public long getItemId(int position) { return position; } @Override public Object getItem(int position) { return mDatas.get(position); } @Override public int getCount() { return mDatas.size(); } public List<T> getList(){ return mDatas; } public void addBeanAtStart(T data){ mDatas.add(0,data); notifyDataSetChanged(); } public void addBeanAtEnd(T data){ mDatas.add(data); notifyDataSetChanged(); } public void addListAtStart(List datas){ mDatas.addAll(0, datas); notifyDataSetChanged(); } public void addListAtEnd(List datas){ mDatas.addAll(datas); notifyDataSetChanged(); } public void remove(int position){ if (mDatas!=null&&position<mDatas.size()&&position>=0) mDatas.remove(position); notifyDataSetChanged(); } public void remove(T data){ mDatas.remove(data); notifyDataSetChanged(); } public void removeAll(){ if(mDatas!=null){ mDatas.clear(); notifyDataSetChanged(); } } public void replaceBean(int position,T data){ mDatas.remove(position); mDatas.add(position,data); } }
    ViewHolder :
    import android.util.SparseArray;
    import android.view.View;
    
    /**
     * Created by Administrator on 2016/1/28.
     */
    public class ViewHolder {
        public static <T extends View> View get(int id, View convertView){
            SparseArray<View> viewHolder= (SparseArray<View>) convertView.getTag();
            if (viewHolder==null){
                viewHolder=new SparseArray<>();
                convertView.setTag(viewHolder);
            }
            View childView=viewHolder.get(id);
            if(childView==null){
                childView=convertView.findViewById(id);
                viewHolder.put(id, childView);
            }
            return childView;
        }
    }
  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/libertycode/p/5167621.html
Copyright © 2011-2022 走看看