三.PullToRefreshScrollView 整体下拉刷新下拉加载 主方法里面

    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 = connection.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);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值