作家
登录

Android自定义BaseAdapter最佳实践

作者: 来源: 2017-05-18 13:28:12 阅读 我要评论

  •     private TextView textView; 
  •  
  •     public MyViewHolder(View itemView) { 
  •         super(itemView); 
  •         textView = (TextView) itemView.findViewById(R.id.textView); 
  •     } 
  • 自定义BaseAdapter

    在自定义基类之前,先简单分析一下,我们须要自定义一个支撑单种视图的Adapter,还要自定义一个支撑多种视图类型的Adapter,两个类都要持续BaseAdapter,先将两个类都公用的部分采掏出来定义为MyAdapter。

    1. public abstract class MyAdapter<T> extends BaseAdapter { 
    2.  
    3.     protected List<T> dataList = new ArrayList<>(); 
    4.     protected Context context; 
    5.     protected LayoutInflater inflater; 
    6.  
    7.     public MyAdapter(Context context) { 
    8.         this.context = context; 
    9.         inflater = LayoutInflater.from(context); 
    10.     } 
    11.  
    12.     public void setDataList(List<T> dataList) { 
    13.         this.dataList = dataList; 
    14.         notifyDataSetChanged(); 
    15.     } 
    16.  
    17.     @Override 
    18.     public int getCount() { 
    19.         if (null == dataList) { 
    20.             return 0; 
    21.         } 
    22.         return dataList.size(); 
    23.     } 
    24.  
    25.     @Override 
    26.     public T getItem(int position) { 
    27.         return dataList.get(position); 
    28.     } 
    29.  
    30.     @Override 
    31.     public long getItemId(int position) { 
    32.         return position; 
    33.     } 
    34.  

    在RecyclerView的Adapter实现中是没有getView()办法的,下面我们就分析一下getView()办法若何拆分,一般情况下我们在实现getView()办法都是如下贱程。

    1. public View getView(int position, 

        推荐阅读

        用Python写一个NoSQL数据库

      Relations 本文译自 What is a NoSQL Database? Learn By Writing>NoSQL 这个词在近些年正变得到处可见. 然则到底 "NoSQL" 指的是什么? 它是若何并且为什么这么竽暌剐用? 在本文, 我们将会>>>详细阅读


      本文标题:Android自定义BaseAdapter最佳实践

      地址:http://www.17bianji.com/lsqh/35304.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)