ViewHolder的经典用法<SparseArray>

来源:互联网 发布:男士袜子 知乎 编辑:程序博客网 时间:2024/06/04 20:48

今天在看项目代码的时候,发现了一个经典的viewHolder用法。

抽象出了一种经典的存储view的方法



[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. public class ViewHolder {  
  2. // I added a generic return type to reduce the casting noise in client code  
  3. @SuppressWarnings("unchecked")  
  4. public static <T extends View> T get(View view, int id) {  
  5. SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();  
  6. if (viewHolder == null) {  
  7. viewHolder = new SparseArray<View>();  
  8. view.setTag(viewHolder);  
  9. }  
  10. View childView = viewHolder.get(id);  
  11. if (childView == null) {  
  12. childView = view.findViewById(id);  
  13. viewHolder.put(id, childView);  
  14. }  
  15. return (T) childView;  
  16. }  
  17. }  
0 0
原创粉丝点击