public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private XListView xlv; private List<DataDataBean.DataBean> list=new ArrayList<>(); private MyAdapter myAdapter; private int page_num=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = (XListView) findViewById(R.id.xlv); //设置上拉还是下拉 xlv.setPullLoadEnable(true); xlv.setPullRefreshEnable(true); xlv.setXListViewListener(this); //获取数据 getDataByNET(); } private void getDataByNET() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { try { URL url=new URL("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int code = connection.getResponseCode(); if(code==200){ InputStream inputStream = connection.getInputStream(); String json=streamtostring(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); DataDataBean bean = gson.fromJson(s, DataDataBean.class); list.addAll(bean.getData()); //设置适配器 setAdapter(); } }; asyncTask.execute(); } //设置适配器 private void setAdapter() { if(myAdapter==null){ myAdapter = new MyAdapter(MainActivity.this,list); xlv.setAdapter(myAdapter); }else{ myAdapter.notifyDataSetChanged(); } } //下拉刷新 @Override public void onRefresh() { page_num++; AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { try { URL url=new URL("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="+page_num); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int code = connection.getResponseCode(); if(code==200){ InputStream inputStream = connection.getInputStream(); String json=streamtostring(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); DataDataBean bean = gson.fromJson(s, DataDataBean.class); list.addAll(0,bean.getData()); //设置适配器 setAdapter(); //刷新完停止 xlv.stopRefresh(); //设置刷新时间 Date date = new Date(System.currentTimeMillis()); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("HH:mm");//格式化时间 xlv.setRefreshTime(simpleDateFormat.format(date)); } }; asyncTask.execute(); } //上拉加载 @Override public void onLoadMore() { page_num++; AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { try { URL url=new URL("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="+page_num); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int code = connection.getResponseCode(); if(code==200){ InputStream inputStream = connection.getInputStream(); String json=streamtostring(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); DataDataBean bean = gson.fromJson(s, DataDataBean.class); list.addAll(bean.getData()); //设置适配器 setAdapter(); xlv.stopLoadMore(); } }; asyncTask.execute(); } //转换 private String streamtostring(InputStream inputStream, String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s=null; StringBuilder builder=new StringBuilder(); while((s=bufferedReader.readLine())!=null){ builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }
上拉加载,下拉刷新
最新推荐文章于 2023-07-20 23:36:52 发布