Skip to content

Instantly share code, notes, and snippets.

@trity1993
Created June 19, 2016 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trity1993/50e4797d88fe9d2183dbecd1e01fbd98 to your computer and use it in GitHub Desktop.
Save trity1993/50e4797d88fe9d2183dbecd1e01fbd98 to your computer and use it in GitHub Desktop.
对viewpager添加view的通用适配器
public class CommonPageAdapter extends PagerAdapter implements IListAdapter<View> {
private static final String TAG = CommonPageAdapter.class.getName();
private List<View> mViews;
private int mChildCount=0;
public CommonPageAdapter() {
}
public CommonPageAdapter(List<View> views) {
mViews = views;
}
@Override
public int getCount() {
return mViews == null ? 0 : mViews.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = mViews.get(position);
try {
container.addView(view);
} catch (Exception e) {
}
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mViews.get(position));
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
public void setList(List<View> views) {
mViews = views;
notifyDataSetChanged();
}
@Override
public List<View> getList() {
return mViews;
}
@Override
public void addAll(List<View> list) {
if (mViews == null) {
mViews = new ArrayList<>(list.size());
}
mViews.addAll(list);
}
@Override
public void add(View item) {
if (mViews == null) {
mViews = new ArrayList<>();
}
mViews.add(item);
}
@Override
public View getItem(int position) {
return mViews.get(position);
}
@Override
public boolean contains(View item) {
return mViews == null ? false : mViews.contains(item);
}
@Override
public void remove(View item) {
if (mViews != null) {
mViews.remove(item);
}
}
@Override
public void remove(int position) {
if (mViews != null) {
mViews.remove(position);
}
}
@Override
public void clear() {
if (mViews != null) {
mViews.clear();
}
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
public interface IListAdapter<T> {
void setList(List<T> list);
List<T> getList();
void addAll(List<T> list);
void add(T item);
T getItem(int position);
boolean contains(T item);
void remove(T item);
void remove(int position);
void clear();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment