public class MyNetTask extends AsyncTask<String,Void,String> { private IcallBack icallBack; public MyNetTask(IcallBack icallBack){ this.icallBack=icallBack; } @Override protected String doInBackground(String... strings) { StringBuilder builder=new StringBuilder(); //1.根据url创建URL try { URL url=new URL(strings[0]); //2.打开连接 HttpURLConnection conn =(HttpURLConnection) url.openConnection(); //3.设置 conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); //4.判断结果码 if(conn.getResponseCode()==200){ //5.获取数据 InputStream inputStream = conn.getInputStream(); BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream)); String str; while ((str=reader.readLine())!=null){ builder.append(str); } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Log.d("zzz",builder.toString()); return builder.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //gson 显示 //4.调用接口中方法 icallBack.getJsonData(s); } public interface IcallBack{ void getJsonData(String jsonStr); }}
private void initPsv() { psv.setMode(PullToRefreshBase.Mode.BOTH); ILoadingLayout headerLayout = psv.getLoadingLayoutProxy(true, false); headerLayout.setPullLabel("下拉刷新"); headerLayout.setReleaseLabel("放开刷新"); headerLayout.setRefreshingLabel("正在刷新。。。"); ILoadingLayout footerLayout = psv.getLoadingLayoutProxy(false, true); footerLayout.setPullLabel("上拉加载"); footerLayout.setReleaseLabel("放开加载"); footerLayout.setRefreshingLabel("正在加载。。。。"); psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { pageIndex=1; url=urlPart+pageIndex; MyNetTask task1=new MyNetTask(new MyNetTask.IcallBack() { @Override public void getJsonData(String jsonStr) { Gson gson=new Gson(); Result1 result1 = gson.fromJson(jsonStr, Result1.class); datas.addAll(result1.getNewslist()); setAdapter(); psv.onRefreshComplete(); } }); task1.execute(url); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { pageIndex++; url=urlPart+pageIndex; MyNetTask task1=new MyNetTask(new MyNetTask.IcallBack() { @Override public void getJsonData(String jsonStr) { Gson gson=new Gson(); Result1 result1 = gson.fromJson(jsonStr, Result1.class); datas.addAll(result1.getNewslist()); setAdapter(); psv.onRefreshComplete(); } }); task1.execute(url); } });
请求数据的封装类
最新推荐文章于 2024-01-31 09:29:10 发布