PullToRefresh上啦加载下拉刷新添加的依赖:
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
public class ChildFragment03 extends Fragment { List<UserData.DataBean> listAll = new ArrayList<UserData.DataBean>(); public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/"; int page; private PullToRefreshAdapterViewBase ptrListview; private MyAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.childfragment03_layout, container, false); ptrListview =(PullToRefreshAdapterViewBase)view.findViewById(R.id.ptrListview); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //设置允许下拉上啦 ptrListview.setMode(PullToRefreshBase.Mode.BOTH); //获取网络数据的方法 getNetData(0); //设置适配器 adapter = new MyAdapter(listAll,getActivity()); ptrListview.setAdapter(adapter); //ptrListview设置监听 ptrListview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() { @Override public void onPullDownToRefresh(PullToRefreshBase pullToRefreshBase) {//下拉刷新 listAll.clear(); getNetData(0); } @Override public void onPullUpToRefresh(PullToRefreshBase pullToRefreshBase) {//上啦加载 page++; getNetData(page); } }); } private void getNetData(int page) { new MyAsyncTask().execute(urlString+page); } private class MyAsyncTask extends AsyncTask<String ,Void,String>{ @Override protected String doInBackground(String... strings) { return NetHttpurlConnection.getText(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析数据 Gson gson = new GsonBuilder().create(); UserData userData = gson.fromJson(s, UserData.class); List<UserData.DataBean> data = userData.getData(); listAll.addAll(data); //刷新适配器 adapter.notifyDataSetChanged(); //让刷新头和底部返回 ptrListview.onRefreshComplete(); } } }