自定义IBaseAdapter,简化适配器重复的步骤
目前我 listView 用的还是比较多,所以经常要适配器。就发现很多重复的步骤了。赶在今天状态好,就试着写了一个IBaseAdapter
因为泛型不会用百度了才知道怎么用。然后才知道这个Baseadapter大神们早就写了,跟我想的没差。哦,应该是我的跟大神的基本相同。就记录一下了IBaseAdapter<>BaseAdapter{ContextgetContext(){;}Context;List<>;List<>getmLists(){;}setmLists(List<>mLists){.=mLists;}IBaseAdapter(Contextcontext,List<>mLists){init(context,mLists);}IBaseAdapter(Contextcontext){init(context,ArrayList<>());}upDate(List<>mLists){.=mLists;notifyDataSetChanged();}clean(){(!=){..clear();notifyDataSetChanged();}}addAll(List<>list){(!=list){..addAll(list);notifyDataSetChanged();}}remove(position){(!=){..remove(position);notifyDataSetChanged();}}init(Contextcontext,List<>mLists){.=context;.=mLists;}getLayoutId();getView(position,ViewconvertView);getCount(){==?:.size();}getItem(position){==?:.get(position);}getItemId(position){position;}ViewgetView(position,ViewconvertView,ViewGroupparent){(convertView==){layoutId=getLayoutId();(layoutId==){NullPointerException();}convertView=LayoutInflater.().inflate(layoutId,parent,);AutoUtils.(convertView);}getView(position,convertView);convertView;}()<View>(ViewconvertView,id){SparseArray<View>viewHolder=(SparseArray<View>)convertView.getTag();(viewHolder==){viewHolder=SparseArray<View>();convertView.setTag(viewHolder);}ViewchildView=viewHolder.get(id);(childView==){childView=convertView.findViewById(id);viewHolder.put(id,childView);}()childView;}}
继承 该基类,实现两个方法
getLayoutId()返回布局IDgetView(intposition,ViewconvertView)里面操作你要写的逻辑在getView(intposition,ViewconvertView)方法里面可以使用getItem(intposition)得到实体模型数据然后提供一些七七八八的便捷方法findChildView()是省去写ViewHolder的方法附上使用例子/***Createdbychenguozhenon2017/3/30.* eMail1021632321@QQ.com*/publicclassMainAuthorAdapterextendsIBaseAdapter<RecommentAuthor>{publicMainAuthorAdapter(Contextcontext,List<RecommentAuthor>mLists){super(context,mLists);}@Nullable@OverridepublicintgetLayoutId(){returnR.layout.list_column_item;}@OverridepublicvoidgetView(intposition,ViewconvertView){RecommentAuthorrecommentAuthor=getItem(position);ImageViewhead=findChildView(convertView,R.id.ivHeadForListColumn);TextViewtitle=findChildView(convertView,R.id.tvTitleForListColumn);TextViewcontent=findChildView(convertView,R.id.tvContextForListColumn);TextViewtime=findChildView(convertView,R.id.tvTimeForListColumn);TextViewmoney=findChildView(convertView,R.id.tvMoneyForListColumn);GlideManager.loadImage(getContext(),recommentAuthor.getHead_img(),R.mipmap.default_head_ic,R.mipmap.default_head_ic,head);title.setText(recommentAuthor.getAuthor_name());content.setText(recommentAuthor.getColumn_name());time.setText(recommentAuthor.getCreate_date());money.setVisibility(View.GONE);}}
大概就这样了。下班收队
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。