zoukankan      html  css  js  c++  java
  • ViewHolder的简易聪明写法

    public class ViewHolder {
    		// I added a generic return type to reduce the casting noise in client
    		// code
    		@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;
    		}
    	}
    

      运用泛型讲ViewHolder封装起来

    使用方式:

    @Override
    	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;
    	}
    

      转载:http://www.eoeandroid.com/thread-321547-1-6.html

  • 相关阅读:
    小小c#算法题
    .net中值类型、引用类型理解的c#代码示例
    小小c#算法题
    小小c#算法题
    小小c#算法题
    小小c#算法题
    python 正则表达式(一)
    python string 文本常量和模版
    centos6安装redis
    sqoop命令总结
  • 原文地址:https://www.cnblogs.com/gfqFighting/p/3711781.html
Copyright © 2011-2022 走看看