public class Fragment01 extends Fragment { private XListView xlv; private int page=1; private int type=1; private String url; private String dataType; private List<User.DataBean> list=new ArrayList<>(); private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(type==1){ xlv.stopRefresh(); Date date=new Date(System.currentTimeMillis()); SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss"); String time = format.format(date); xlv.setRefreshTime(time); }else{ xlv.stopLoadMore(); } }};
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment, container, false); xlv = (XListView) view.findViewById(R.id.xlv); Bundle bundle = getArguments(); dataType= bundle.getString("value"); url ="http://api.expoon.com/AppNews/getNewsList/type/"+dataType+"/p/"+page; xlv.setPullRefreshEnable(true); xlv.setPullLoadEnable(true); xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { type=1; page=1; new MyTesk().execute(url); } @Override public void onLoadMore() { type=2; page++; new MyTesk().execute(url); } }); new MyTesk().execute(url); return view; }class MyTesk extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { try { URL url = new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(30000); connection.setReadTimeout(30000); int code = connection.getResponseCode(); if (code == 200) { InputStream inputStream = connection.getInputStream(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int len = 0; byte[] buffer = new byte[1024]; while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } outputStream.close(); inputStream.close(); String s = outputStream.toString(); return s; } } catch (Exception e) { e.printStackTrace(); } return null; }@Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); User user = gson.fromJson(s,User.class); // List<User.DataBean> list = user.getData(); // list.addAll(user.getData()); if(type==1){ list.clear(); list.addAll(user.getData()); }else{ list.addAll(user.getData()); } MyAdapter myAdapter = new MyAdapter(list, getActivity()); xlv.setAdapter(myAdapter); handler.sendEmptyMessageDelayed(0,1000); } } }