package com.datdo.mobilib.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import com.datdo.mobilib.base.MblBaseAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /** * Created by datdvt on 2015/06/08. */ public class MblUniversalAdapter extends MblBaseAdapter<MblUniversalItem> { private Context mContext; private Map<View, Class> mViewAndItemClass = new HashMap<>(); public MblUniversalAdapter(Context context) { mContext = context; } @Override public View getView(int i, View convertView, ViewGroup viewGroup) { final MblUniversalItem item = (MblUniversalItem) getItem(i); final View view; Class convertViewItemClass; if (convertView == null || (convertViewItemClass = mViewAndItemClass.get(convertView)) == null || convertViewItemClass != item.getClass()) { view = item.create(mContext); } else { view = convertView; } mViewAndItemClass.put(view, item.getClass()); item.display(view); return view; } public void clearData() { changeData(new ArrayList<MblUniversalItem>()); } }