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

ViewHolder的简洁写法

时间:2015-05-23 16:57:13      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

该方法外国老写的,分享一下

提供一个静态方法:

public class ViewHolder {
    @SuppressWarnings("unchecked")
    public static <T extends View> T get(View view, int id) {
        SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
        if (viewHolder == null) {
            viewHolder = new SparseArray<View>();
            view.setTag(viewHolder);
        }
        View childView = viewHolder.get(id);
        if (childView == null) {
            childView = view.findViewById(id);
            viewHolder.put(id, childView);
        }
        return (T) childView;
    }
}

在getView中使用:

public View getView(int position, View convertView, ViewGroup parent)
 {
    if (convertView == null) {
        convertView = LayoutInflater.from(context)
          .inflate(R.layout.banana_phone, parent, false);
    }
    ImageView bananaView = ViewHolder.get(convertView, R.id.banana);
    TextView phoneView = ViewHolder.get(convertView, R.id.phone);
    BananaPhone bananaPhone = getItem(position);
    phoneView.setText(bananaPhone.getPhone());
    bananaView.setImageResource(bananaPhone.getBanana());
    return convertView;
}
感兴趣的关注一下微信订阅号:微信号:aikaifa
或扫描一下下面二维码:
技术分享

ViewHolder的简洁写法

标签:

原文地址:http://blog.csdn.net/hongshengpeng/article/details/45935049

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