码迷,mamicode.com
首页 > 其他好文 > 详细

万能的ViewHolder

时间:2015-04-21 01:37:43      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

    /**
     * 万能的ViewHolder
     * @author 
     *
     */
    static class ViewHolder {
    /**
     * 
     * @param view 所有缓存View的根View
     * @param id 缓存View的唯一标识
     * @return
     */
        public static <T extends View> T get(View view, int id) {
            
            SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
            //如果根view没有用来缓存View的集合
            if (viewHolder == null) {
                viewHolder = new SparseArray<View>();
                view.setTag(viewHolder);//创建集合和根View关联
            }
            View chidlView = viewHolder.get(id);//获取根View储存在集合中的孩纸 
            if (chidlView == null) {//如果没有改孩纸
                //找到该孩纸
                chidlView = view.findViewById(id);
                viewHolder.put(id, chidlView);//保存到集合
            }
            return (T)chidlView;
        }
    }

 

万能的ViewHolder

标签:

原文地址:http://www.cnblogs.com/a454892215/p/4443129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!