package com.xiaomi.xms.sales.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.HashMap;
public abstract class BasePageAdapter<T> extends PagerAdapter {
private ArrayList<T> mData;
private Context mContext;
private HashMap<Integer, View> mViews;
public BasePageAdapter(Context context) {
mContext = context;
mData = new ArrayList<T>();
mViews = new HashMap<Integer, View>();
}
public void updateData(ArrayList<T> data) {
if (data != null) {
mData = data;
notifyDataSetChanged();
}
}
@Override
public int getCount() {
return mData.size();
}
public T getData(int position) {
return mData.get(position);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return ((View) object) == view;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = position < mViews.size() ? mViews.get(position) : null;
T data = getData(position);
if (view == null) {
view = newView(mContext, data, container);
mViews.put(position, view);
}
container.addView(view);
bindView(view, position, data);
view.setId(position);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView(mViews.get(position));
}
public abstract View newView(Context context, T data, ViewGroup parent);
public abstract void bindView(View view, int position, T data);
}