package org.aisen.android.ui.fragment.adapter; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * APagingFragmentçš„Adapter * * Created by wangdan on 16/1/4. */ public interface IPagingAdapter<T extends Serializable> { int TYPE_NORMAL = 1000; int TYPE_FOOTER = 2000; ArrayList<T> getDatas(); void notifyDataSetChanged(); class Utils { public static <T extends Serializable> void setDatasAndRefresh(IPagingAdapter<T> adapter, ArrayList<T> datas) { adapter.getDatas().clear(); adapter.getDatas().addAll(datas); adapter.notifyDataSetChanged(); } public static <T extends Serializable> void addItem(IPagingAdapter<T> adapter, T entry) { adapter.getDatas().add(entry); } public static <T extends Serializable> void addItemAndRefresh(IPagingAdapter<T> adapter, T entry) { addItem(adapter, entry); adapter.notifyDataSetChanged(); } public static <T extends Serializable> void addItems(IPagingAdapter<T> adapter, List<T> entries) { adapter.getDatas().addAll(entries); } public static <T extends Serializable> void addItemsAndRefresh(IPagingAdapter<T> adapter, List<T> entries) { addItems(adapter, entries); adapter.notifyDataSetChanged(); } public static <T extends Serializable> void addItem(IPagingAdapter<T> adapter, T entry, int to) { adapter.getDatas().add(to, entry); } public static <T extends Serializable> void addItemsAndRefresh(IPagingAdapter<T> adapter, T entry, int to) { addItem(adapter, entry, to); adapter.notifyDataSetChanged(); } public static <T extends Serializable> void addItemAtFront(IPagingAdapter<T> adapter, T entry) { adapter.getDatas().add(0, entry); } public static <T extends Serializable> void addItemAtFrontAndRefresh(IPagingAdapter<T> adapter, T entry) { addItemAtFront(adapter, entry); adapter.notifyDataSetChanged(); } public static <T extends Serializable> void addItemsAtFront(IPagingAdapter<T> adapter, List<T> entries) { for (int i = entries.size() - 1; i >= 0; i--) { adapter.getDatas().add(0, entries.get(i)); } } public static <T extends Serializable> void addItemsAtFrontAndRefresh(IPagingAdapter<T> adapter, List<T> entries) { addItemsAtFront(adapter, entries); adapter.notifyDataSetChanged(); } } interface ItemTypeData { int itemType(); } }