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;
        }
    }
  • 相关阅读:
    结对编程实验(1李晓冬13、张金伟118)
    软件工程网络15个人阅读2(201521123118张金伟)
    软件工程网络15个人作业阅读1(201521123118 张金伟)
    《Java课程设计》
    201521123118《java与程序设计》第14周学习总结
    201521123118《程序与设计》第13周学习总结
    201521123118《程序与设计》第12周学习总结
    网络15软工个人作业5——软件工程总结
    个人作业4——alpha阶段个人总结
    软工网络15个人作业3——案例分析
  • 原文地址:https://www.cnblogs.com/libertycode/p/5167621.html
Copyright © 2011-2022 走看看