Android Open Source - sres Observable Pager Adapter From Project Back to project page sres .
License The source code is released under:
Apache License
If you think the Android project sres listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package me.tatarka.sres;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Created by evan on 3/11/14.
*/
public abstract class ObservablePagerAdapter<T> extends PagerAdapter {
private ObservableListViewHelper<T> helper;
private List<View>[] recycleViews;
public ObservablePagerAdapter(List<T> list) {
helper = new ObservableListViewHelper<>(list);
helper.setListener(new ObservableList.Listener<T>() {
@Override
public void onChange(ObservableList.ChangeType changeType, Collection<ObservableList.Change<T>> changes) {
notifyDataSetChanged();
}
});
recycleViews = new List[getViewTypeCount()];
for (int i = 0; i < recycleViews.length; i++) {
recycleViews[i] = new ArrayList<>();
}
}
public void replace(List<T> list) {
helper.replace(list);
}
public ObservableList<T> getList() {
return helper.getList();
}
public T getItem(int position) {
return helper.getList().get(position);
}
public abstract View getView(int position, View convertView, ViewGroup parent);
public abstract int getViewTypeCount();
public abstract int getItemViewType(int position);
@Override
public Object instantiateItem(ViewGroup container, int position) {
if (position >= getCount()) return null;
List<View> recycleViewList = recycleViews[getItemViewType(position)];
View view;
if (recycleViewList.isEmpty()) {
view = getView(position, null, container);
} else {
view = getView(position, recycleViewList.remove(recycleViewList.size() - 1), container);
}
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
if (position >= getCount()) return ;
List<View> recycleViewList = recycleViews[getItemViewType(position)];
recycleViewList.add(view);
}
@Override
public int getCount() {
return helper.getList().size();
}
@Override
public boolean isViewFromObject(View view, Object o) {
return view == o;
}
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
}
Java Source Code List me.tatarka.sres.AbstractTrackable.java me.tatarka.sres.Bindable.java me.tatarka.sres.ChangeTracker.java me.tatarka.sres.FileFilter.java me.tatarka.sres.LayoutGenerator.java me.tatarka.sres.LayoutParser.java me.tatarka.sres.LayoutSelectorHelper.java me.tatarka.sres.LayoutSelector.java me.tatarka.sres.ListView.java me.tatarka.sres.Main.java me.tatarka.sres.ObservableAdapter.java me.tatarka.sres.ObservableArrayList.java me.tatarka.sres.ObservableListViewHelper.java me.tatarka.sres.ObservableList.java me.tatarka.sres.ObservablePagerAdapter.java me.tatarka.sres.SResBaseVisitor.java me.tatarka.sres.SResLexer.java me.tatarka.sres.SResOutput.java me.tatarka.sres.SResParser.java me.tatarka.sres.SResVisitor.java me.tatarka.sres.SRes.java me.tatarka.sres.SourceInfo.java me.tatarka.sres.ThreadHandlerImpl.java me.tatarka.sres.ThreadHandlerProvider.java me.tatarka.sres.ThreadHandler.java me.tatarka.sres.Trackable.java me.tatarka.sres.ViewPager.java me.tatarka.sres.ast.Attribute.java me.tatarka.sres.ast.Binding.java me.tatarka.sres.ast.Child.java me.tatarka.sres.ast.Converter.java me.tatarka.sres.ast.Include.java me.tatarka.sres.ast.RootView.java me.tatarka.sres.ast.View.java me.tatarka.sres.idea.SResFileTypeFactory.java me.tatarka.sres.idea.SResFileType.java me.tatarka.sres.idea.SResFile.java me.tatarka.sres.idea.SResIcons.java me.tatarka.sres.idea.SResLanguage.java me.tatarka.sres.idea.SResLexer.java me.tatarka.sres.idea.SResParserDefinition.java me.tatarka.sres.idea._SResLexer.java me.tatarka.sres.idea.psi.SResElementType.java me.tatarka.sres.idea.psi.SResTokenType.java me.tatarka.sres.impl.SResCodeLayoutGenerator.java me.tatarka.sres.impl.SResLayoutParser.java me.tatarka.sres.impl.SResVisitor.java me.tatarka.sres.impl.SResXmlLayoutGenerator.java me.tatarka.sres.impl.WriterCodeWriter.java me.tatarka.sres.property.BooleanProperty.java me.tatarka.sres.property.ByteProperty.java me.tatarka.sres.property.CharProperty.java me.tatarka.sres.property.DoubleProperty.java me.tatarka.sres.property.FloatProperty.java me.tatarka.sres.property.IntProperty.java me.tatarka.sres.property.LongProperty.java me.tatarka.sres.property.Property.java me.tatarka.sres.property.ShortProperty.java me.tatarka.sres.sample.MainActivity.java me.tatarka.sres.sample.MyListItemView.java me.tatarka.sres.sample.MyListItem.java me.tatarka.sres.sample.MyMainView.java me.tatarka.sres.sample.MyModel.java me.tatarka.sres.sample.MyView.java me.tatarka.sres.util.PathTransformer.java