listview下拉自动加载,接口实现

public class NewsListView extends ListView {

	// 下拉更多视图
	private View lastMoreView;
	//最后一个item postion
	private int lastItem;
	//listview item数目
	private int itemSize;
	//滑动到底部事件
	private ScrollLastView sv;
	//index
	private int index;

	public NewsListView(Context context, View lastMoreView, int index) {
		super(context);
		// TODO Auto-generated constructor stub
		this.index = index;
		this.lastMoreView = lastMoreView;
		// 添加加载更多视图
		this.addFooterView(this.lastMoreView);
		// 隐藏尾部更多视图
		this.lastMoreView.setVisibility(View.GONE);
		this.setOnScrollListener(new OnScrollListener() {
			
			@Override
			public void onScrollStateChanged(AbsListView view, int scrollState) {
				itemSize = NewsListView.this.getAdapter().getCount() - 1;
				//System.out.println("itemSize:" + itemSize + " lastItem:" + lastItem);
				// 下拉到底部时,且最后一个item的数等于数据的总数时,进行更新
				if (lastItem == itemSize && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
					//下拉到尾部操作代码
					sv.scrollMethod();
				}
			}
			
			@Override
			public void onScroll(AbsListView view, int firstVisibleItem,
					int visibleItemCount, int totalItemCount) {
				lastItem = firstVisibleItem + visibleItemCount - 1;
			}
		});
	}
	
	public void setScrollMethod(ScrollLastView sv) {
		this.sv = sv;
	}
	
	public interface ScrollLastView {
		public void scrollMethod();
	}
	
	public View getLastMoreView() {
		return this.lastMoreView;
	}
	
	public int getIndex() {
		return index;
	}
	

}

调用,直接set下拉到底部的接口事件就可以,在里面加入加载下一页的代码

listview.setScrollMethod(new ScrollLastView() {

				@Override
				public void scrollMethod() {
			});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值