package com.yaoyumeng.v2ex.ui.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.view.ViewGroup;
import com.yaoyumeng.v2ex.ui.fragment.PhotoViewFragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class PhotoViewerPagerAdapter extends FragmentStatePagerAdapter {
protected final HashMap<Object, Integer> mObjectRowMap = new HashMap<Object, Integer>();
private ArrayList<String> mList = new ArrayList<String>();
public PhotoViewerPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final Object obj = super.instantiateItem(container, position);
if (obj != null) {
mObjectRowMap.put(obj, position);
}
return obj;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
mObjectRowMap.remove(object);
super.destroyItem(container, position, object);
}
@Override
public Fragment getItem(int position) {
return PhotoViewFragment.newInstance(mList.get(position), position);
}
@Override
public int getItemPosition(Object object) {
final Integer rowId = mObjectRowMap.get(object);
if (rowId == null) {
return PagerAdapter.POSITION_NONE;
} else {
return rowId;
}
}
@Override
public int getCount() {
if (mList != null) {
return mList.size();
} else {
return 0;
}
}
public ArrayList<String> getData() {
return mList;
}
public void setData(List<String> datas) {
mList.clear();
mList.addAll(datas);
notifyDataSetChanged();
}
}