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

来源:互联网 发布:淘宝落地页是什么 编辑:程序博客网 时间:2024/05/16 13:51
一、添加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
原创粉丝点击