自定义listview
public class LoadMoreListView extends ListView implements AbsListView.OnScrollListener { public LoadMoreListView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public LoadMoreListView(Context context) { super(context); init(context); } private OnLoadMore loadMore; private int totalItemCount; private int lastItem; private boolean isLoading; private LayoutInflater inflater; View footer; private void init(Context context) { inflater = LayoutInflater.from(context); footer = inflater.inflate(R.layout.load_more_footer,null ,false); footer.setVisibility(View.GONE); this.addFooterView(footer); this.setOnScrollListener(this); } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (totalItemCount == lastItem && scrollState==SCROLL_STATE_IDLE){ if (!isLoading){ isLoading = true; footer.setVisibility(View.VISIBLE); loadMore.loadMore(); } } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { this.lastItem = firstVisibleItem+visibleItemCount; this.totalItemCount = totalItemCount; } public void setLoadMoreListen(OnLoadMore onLoadMore){ this.loadMore = onLoadMore; } /** * 加载完成调用此方法 */ public void onLoadComplete(){ footer.setVisibility(View.GONE); isLoading = false; } public interface OnLoadMore{ public void loadMore(); } }