Created
June 19, 2016 14:07
-
-
Save trity1993/50e4797d88fe9d2183dbecd1e01fbd98 to your computer and use it in GitHub Desktop.
对viewpager添加view的通用适配器
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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