Adapter万能适配器,只要3行

来源:互联网 发布:淘宝店铺大图怎么做 编辑:程序博客网 时间:2024/06/05 22:35

废话不多说,先上图一个匿名内部类,一个适配器完成+两项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.ImageView;import android.widget.TextView;import com.nostra13.universalimageloader.core.ImageLoader;public class ViewHolder {private View mConvertView;// 对于key和valse为int、Obj的 用SparseArray比map效率高private SparseArray<View> mViews;public ViewHolder(Context context, int layoutId) {mViews = new SparseArray<View>();mConvertView = View.inflate(context, layoutId, null);mConvertView.setTag(this);}public static ViewHolder get(Context context, int layoutId, View convertView) {if (convertView == null) {return new ViewHolder(context, layoutId);} else {return (ViewHolder) convertView.getTag();}}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;}public ViewHolder setImageView(int viewId, String uri) {ImageView v = (ImageView) getView(viewId);ImageLoader.getInstance().displayImage(uri, v);return this;}}

类2 AdapterBestBase.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 int layoutId;public AdapterBestBase(Context context, int layoutId, List<T> mList) {this.mContext = context;this.mList = mList;this.layoutId = layoutId;}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) {return mList.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 检测convertViewViewHolder holder = ViewHolder.get(mContext, layoutId, convertView);// 回调getExView(holder, mList.get(position));return holder.getConvertView();}protected abstract void getExView(ViewHolder holder, T t);}





1 0
原创粉丝点击