导依赖 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);
}
}