用PullToRefresh实现沙拉刷新和下拉加载

一.布局文件

<?xml version="1.0" encoding="utf-8"?>

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

二.Java代码

public class Fragment21 extends Fragment {

private PullToRefreshListView pullToRefreshListView;
private ILoadingLayout startLable;
private int count = 1;
private String Url = "http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=";
private List<User.ResultBean> list;
private Myadapter myadapter;
private HelperconListener helperconListener;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag21, container, false);
    helperconListener = new HelperconListener();

    //找控件
    pullToRefreshListView = view.findViewById(R.id.listview);
    list = new ArrayList<>();
    pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
    startLable = pullToRefreshListView.getLoadingLayoutProxy(true, false);

    //设置监听
    myadapter = new Myadapter(getActivity(), list);
    pullToRefreshListView.setAdapter(myadapter);

    //给pullToRefresh设置监听
    pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
            list.clear();
            getData(1);
        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
            count++;
            getData(count);
        }
    });
    getData(1);
    return view;
}

private void getData(int count) {

    helperconListener.get(Url + count).getListener(new HelperconListener.HelperListener() {
        @Override
        public void getData(String str) {
            Gson gson = new Gson();
            User user = gson.fromJson(str, User.class);
            list.addAll(0, user.getResult());
            myadapter.getList(list);
            pullToRefreshListView.onRefreshComplete();
            startLable.setLastUpdatedLabel("上次更新时间:" + new SimpleDateFormat("HH:mm:ss").format(new Date(System.currentTimeMillis())));
        }
    });
}

}

猜你喜欢

转载自blog.csdn.net/wzj_8899174/article/details/83313166