Adapter万能适配器,只要3行

废话不多说,先上图一个匿名内部类,一个适配器完成+两项listview优化

注:holder.setText()是把取view操作提取而已,如果需要操作imageview添加个 setImageView即可

so easy!

想要跟上面代码一样简单,ok 导入我的两个类

至于两个类怎么写的,,稍微花下时间看下,应该就明白

类1 ViewHodler.java

package com.zhuimore.iqzone.adapter.base;import android.content.Context;import android.util.SparseArray;import android.view.View;import android.widget.TextView;public class ViewHolder {private View mConvertView;//对于key和valse为int、Obj的 用SparseArray比map效率高private SparseArray<View> mViews = new SparseArray<View>();public ViewHolder() {}public void init(Context context, int layoutId, View convertView) {if (convertView == null) {convertView = View.inflate(context, layoutId, null);convertView.setTag(this);this.mConvertView = convertView;}}public View getView(int viewId) {View v = mViews.get(viewId);if (v == null) {v = mConvertView.findViewById(viewId);mViews.put(viewId, v);}return v;}public View getConvertView() {return mConvertView;}public ViewHolder setText(int viewId, String content) {TextView v=(TextView) getView(viewId);v.setText(content);return this;}}

类2AdapterBestBase.java

package com.zhuimore.iqzone.adapter.base;import java.util.List;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;public abstract class AdapterBestBase<T> extends BaseAdapter {public Context mContext;public List<T> mList;public ViewHolder holder;public int layoutId;public AdapterBestBase(Context context, int layoutId, List<T> mList) {this.mContext = context;this.mList = mList;this.layoutId = layoutId;//一个adapter 一个holderholder = new ViewHolder();}public List<T> getList() {return mList;}public void appendToList(List<T> list) {if (list == null) {return;}mList.addAll(list);notifyDataSetChanged();}public void appendToTopList(List<T> list) {if (list == null) {return;}mList.addAll(0, list);notifyDataSetChanged();}public void appendT(T object) {if (object == null) {return;}mList.add(object);notifyDataSetChanged();}public void removeT(T object) {if (object == null) {return;}mList.remove(object);notifyDataSetChanged();}public void clear() {mList.clear();notifyDataSetChanged();}@Overridepublic int getCount() {return mList.size();}@Overridepublic T getItem(int position) {if (position > mList.size() – 1) {return null;}return mList.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//检测convertViewholder.init(mContext, layoutId, convertView);//回调 getExView(holder, getItem(position));return holder.getConvertView();}protected abstract void getExView(ViewHolder holder, T t);}

请让我们从容面对这离别之后的离别。

Adapter万能适配器,只要3行

相关文章:

你感兴趣的文章:

标签云: