PullToRefresh简介

导依赖 pulltolibrary

public class PullToShowFragment extends Fragment {
private String murl = “http://api.expoon.com/AppNews/getNewsList/type/1/p/”;
private Context context;
private PullToRefreshListView pullto_frag;
private List<Work.DataBean> mdatas = new ArrayList<>();
private MyAdapter adapter;
private int getstart = 1;
private Handler mhandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what == 0){
mdatas.addAll((List<Work.DataBean>) msg.obj);
adapter.notifyDataSetChanged();
pullto_frag.onRefreshComplete();
}
}
};

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_pull_to_show, null);
    initView(v);
    getData(getstart);
    setListener();
    return v;
}

private void setListener() {
    pullto_frag.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
            getstart = 1;
            mdatas.clear();
            getData(getstart);
        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
            getstart++;
            getData(getstart);
        }
    });
}

private void getData(final int getstart) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                URL url = new URL(murl+getstart);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                InputStream stream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
                Gson gson = new Gson();
                Work work = gson.fromJson(reader,Work.class);
                mhandler.sendMessage(mhandler.obtainMessage(0,work.getData()));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }).start();
}

private void initView(View v) {
    pullto_frag = (PullToRefreshListView) v.findViewById(R.id.pullto_frag);
    pullto_frag.setMode(PullToRefreshBase.Mode.BOTH);
    context = getActivity().getApplicationContext();
    adapter = new MyAdapter(context,mdatas);
    pullto_frag.setAdapter(adapter);

}

}

猜你喜欢

转载自blog.csdn.net/wangyonghao132/article/details/84203332