三.PullToRefreshScrollView 整体下拉刷新下拉加载 主方法里面
2017-12-21 11:06
453 查看
private ImageView image_View; private PullToRefreshScrollView pull_ref; //页数 private int pageIndex = 1; //操作的类型 1:下拉刷新 2:上拉加载 private int type = 1; // 给Bean包设置一个集合 private List<MyBean.DataBean> list = new ArrayList<>(); // 网络地址 private String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=2"; private ListBaseadapte adapter; private MyBean myBean; private Banner ban; private ListView my_list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); // 写成集合把图片放进去 List<String> li = new ArrayList<>(); //进行放入 li.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg"); li.add("http://pic2.nipic.com/20090424/1468853_230119053_2.jpg"); li.add("http://img3.3lian.com/2013/s1/20/d/57.jpg"); li.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg"); li.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"); ban.setImageLoader(new BannerImageLoader()); ban.setImages(li); ban.start(); pull_ref.setMode(PullToRefreshBase.Mode.BOTH); pull_ref.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { type = 1; String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=" + pageIndex; new asyncTask().execute(path); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { type = 2; pageIndex++; String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=" + pageIndex; new asyncTask().execute(path); } }); new asyncTask().execute(path); } class asyncTask 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.setConnectTimeout(5000); connection.setReadTimeout(5000); int responseCode = con 4000 nection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = connection.getInputStream(); String s = StreamToString(inputStream, "UTF-8"); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } //主线程 @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.d("sss", "+++解析+++++" + s); Gson gson = new Gson(); myBean = gson.fromJson(s, MyBean.class); //代表刷新 if (type == 1) { //如果是刷新的话 list.clear();//清除原有的数据 } list.addAll(myBean.getData());//添加新的数据 setAdapter(); pull_ref.onRefreshComplete(); } } //新建一个适配器 public void setAdapter() { if (adapter == null) { Log.d("SSSSSSSSSSSSSS", "+++++++listtttttt++++++++" + list); adapter = new ListBaseadapte(MainActivity.this, list); my_list.setAdapter(adapter); } else { //否则刷新适配器 adapter.notifyDataSetChanged(); } } //解析数据 private String StreamToString(InputStream inputStream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String a = ""; StringBuilder stringBuilder = new StringBuilder(); while ((a = bufferedReader.readLine()) != null) { stringBuilder.append(a); } bufferedReader.close(); return stringBuilder.toString(); } catch (Exception e) { e.printStackTrace(); } return ""; } //获得控件 private void initView() { // image_View = (ImageView) findViewById(R.id.imageView); my_list = (ListView) findViewById(R.id.My_list); pull_ref = (PullToRefreshScrollView) findViewById(R.id.pull_ref); ban = (Banner) findViewById(R.id.ban); }
相关文章推荐
- 一. PullToRefreshScrollView xml 整体下拉刷新上拉加载
- 微信小程序上拉刷新和下拉加载2种方法实现,onPullDownRefresh,scroll-view使用
- 微信小程序下拉刷新上拉加载的两种实现方法
- 二.PullToRefreshScrollView 整体下拉刷新上拉加载 需要新建一个Mylistview
- 自定义listview完成上拉刷新,下拉加载的功能,重写ontouchevent方法
- 基于vue2.0版本的手机端mint-ui 的Loadmore上拉刷新下拉加载的方法,对于初学者来说很有帮助,开始写走了很多弯路,网上找到这个方法,简单实用,不多说看代码……
- 微信小程序 详解下拉加载与上拉刷新实现方法
- 上拉加载和下拉刷新方法,SDK20 以上自带的
- 上拉加载下拉刷新方法-ApiCloud学习笔记
- 安德鲁斯,最直接的方法,实现了上拉刷新下拉加载很多其他的
- 上拉加载下拉刷新方法-ApiCloud学习笔记
- 下拉刷新加载聊天记录出现的问题以及解决方法
- PullToRefresh的实现上拉刷新下拉加载
- 补充上拉刷新下拉加载的url问题
- 使用jquery的load方法设计动态加载,并解决浏览器前进、后退、刷新等问题
- 上拉刷新下拉加载
- 当cell很少的情况下(没有占满屏幕),不能拖拽collectionView进行下拉刷新,解决方法
- 二级列表的使用,上拉刷新,下拉加载
- Android开发之细说ListView上拉加载,下拉刷新过程
- pulltorefreshscrollview的简单实现(上拉刷新,下拉加载)