PullToRefreshListView实现上拉、下拉

public class Fragmenttwo extends BaseFragment {

    private PullToRefreshListView pull;
    private String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/";
    private int page=1;
    private List<Person.DataBean> list=new ArrayList<Person.DataBean>();
    private PullAdapter adapter;

    @Override
    protected void initView() {

        pull=find(R.id.pulltorefreshlistview);
        pull.setMode(PullToRefreshBase.Mode.BOTH);
        pull.setScrollingWhileRefreshingEnabled(true);
    }

    @Override
    protected void initData() {

   if (WorkUtil.isNetConnected(getActivity())) {
            getData(page);
        }
    }

    private void getData(int page) {
        final String murl=url+page;
        WorkUtil.MyTask(murl,new WorkUtil.MyAsyncTask(){

            @Override
            public void getData(String str) {

                json(str);
            }

            private void json(String str) {
                Gson gson=new Gson();
                Person personasd=gson.fromJson(str,Person.class);
                list.addAll(personasd.getData());

                adapter=new PullAdapter(getActivity(),list);
                pull.setAdapter(adapter);
                adapter.notifyDataSetChanged();
                pull.onRefreshComplete();
            }
        });
    }

    @Override
    protected void initListener() {

        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                list.clear();
                getData(page);
            }

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

                getData(page++);
            }
        });
    }

    @Override
    protected int initLayout() {
        return R.layout.fragmenttwo;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43936526/article/details/88092467
今日推荐