Android使用PullToRefresh完成ListView下拉刷新和左滑删除

吹在前面的话:ListView下刷新刷功能相信从事Android开发的猿友们并不陌生,包括现在Google亲儿子SwipeRefreshLayout实现效果在一些APP上也能看见(不过个人不喜欢官方的刷新效果)。本文就带领一些刚入门android的朋友或者一起爱分享的朋友来简单的实现ListView的下拉刷新和左滑删除效果。

一、本文主要内容:

  1. 使用PullToRefresh完成ListView下拉、上拉刷新;
  2. 扩展PullToRefresh完美的实现ListView左滑删除效果; 注意:本文中的PullToRefresh并非完整的开源库,个人把一些不需要的和平时无相关的类已删除。看起来更加精简,更加容易理解。
  3. 附上PullToRefresh源码库下载地址:http://download.csdn.net/detail/jaynm/9670737

二、先看效果:

  • 1.ListView下拉刷新、上拉加载更多:

    这里写图片描述

  • 2.ListView下拉刷新、上拉加载更多、左滑删除:

    这里写图片描述

三、实现代码:

  1. 实现ListView下拉刷新:
    至于PullToRefreshBase类,自己修改过源码,代码太长这里就不贴出来,自己可以下载Demo自己仔细阅读,主要看如何应用到自己项目中:
/**
 * Created by caobo on 2016/11/1 0001.
 * ListView下拉刷新、上拉加载更多
 */

public class ListViewActivity extends Activity implements PullToRefreshBase.OnRefreshListener<ListView> {
   

    private PullToRefreshListView refreshlistview;

    private ListView mListView;

    //添加数据List集合
    //TODO:这里使用了LinkedList方便Demo中添加数据使用,实际项目中使用ArrayList即可。
    private LinkedList<String> pullData;

    private ListAdapter adapter;

    //标记下拉index
    private int pullDownIndex = 0;

    //标记上拉index
    private int pullUpIndex = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listview);
        pullData = new LinkedList<>();
        refreshlistview = (PullToRefreshListView) findViewById(R.id.refreshlistview);
        refreshlistview.setPullLoadEnabled(false);
        refreshlistview.setScrollLoadEnabled(true);
        refreshlistview.setOnRefreshListener(this);
        mListView = refreshlistview.getRefreshableView();
        adapter = new ListAdapter(getData());
        mListView.setAdapter(adapter);
        refreshlistview.onRefreshComplete();
    }

    @Override
    public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
        onPullDown();
    }

    @Override
    public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
        onPullUp();
    }

    /**
     * 预加载初始化数据List
     * @return
     */
    public List<String> getData() {
        for (int i = 1; i <= 20; i++) {
            pullData.add("默认ListView数据" + i);
        }
        return pullData;
    }

    /**
     * 下拉刷新添加数据到List集合
     */
    public void onPullDown() {
        pullData.addFirst("下拉刷新数据" + pullDownIndex);
        pullDownIndex++;
        refreshlistview.onRefreshComplete();
        adapter.notifyDataSetChanged();
    }

    /**
     * 上拉加载添加数据到List集合
     */
    public void onPullUp() {
        pullData.addLast("上拉加载数据" + pullUpIndex);
        pullUpIndex++;
        refreshlistview.onRefreshComplete();
        adapter.notifyDataSetChanged();
    }

    public void onBackClick(View view){
        finish();
    }
}

是不是以上操作还是很简单的就完成了ListView下拉刷新,上拉加载更多。
XML布局文件也很简单,只需要引用PullToRefreshListView的地址即可:
这样我们就完成了一个ListView列表的下拉刷新和上拉加载更多,个人认为PullToRefresh这个库还是很强大的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值