PullToRefreshListView简单实现下拉刷新、下拉加载

一、添加Library依赖
implementation project(':library')

二、xml文件

<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:layout_width="match_parent"
    android:scrollbars="none"
    android:layout_height="match_parent"
    android:id="@+id/lv"/>

三、Activity文件
public class MainActivity extends AppCompatActivity  {
//http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1
    @BindView(R.id.gridview)
    PullToRefreshListView lv;
    private ArrayList<Bean.DataBean> arrays;
    private MyListViewAdapter adapter;
    private String path="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=";
    private int index=1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        lv.setMode(PullToRefreshBase.Mode.BOTH);
        initView();
    }
    private void initView() {
        arrays=new ArrayList<>();
        adapter=new MyListViewAdapter(arrays,this);
        gridview.setAdapter(adapter);
        loadData(index);
        lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
                arrays.clear();
                loadData(1);
                gridview.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        lv.onRefreshComplete();
                    }
                },1000);
            }
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
                index++;
                loadData(index);
                gridview.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        lv.onRefreshComplete();
                    }
                },1000);
            }
        });
    }
    private void loadData(int index) {
        new Retrofit.Builder()
                .baseUrl("http://www.qubaobei.com/")
                .addConverterFactory(GsonConverterFactory.create())
                .build().create(NewService.class).GetData(path+index)
                .enqueue(new Callback<Bean>() {
                    @Override
                    public void onResponse(Call<Bean> call, Response<Bean> response) {
                        arrays.addAll(response.body().getData());
                        adapter.notifyDataSetChanged();
                    }
                    @Override
                    public void onFailure(Call<Bean> call, Throwable t) {
                    }
                });
    }
}


四、Adapter和之前ListView适配器一样,继承BaseAdapter,就不再详细写了








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值