上下拉刷新 轮播图 listview

activity_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="zhanghaijiao.bawei.com.day10_demo3.MainActivity">

    <!--只能有一个子孩子 -->
    <com.handmark.pulltorefresh.library.PullToRefreshScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/psv">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
            <!--轮播图-->
            <android.support.v4.view.ViewPager
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:id="@+id/vp"></android.support.v4.view.ViewPager>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/lin_point"
                    android:orientation="horizontal"
                    android:gravity="center"
                    android:layout_gravity="bottom"></LinearLayout>

            </FrameLayout>


            <!--listview-->
            <!--<ListView-->
                <!--android:layout_width="match_parent"-->
                <!--android:layout_height="match_parent"-->
                <!--android:id="@+id/lv"></ListView>-->
            <zhanghaijiao.bawei.com.day10_demo3.MyListView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/lv"></zhanghaijiao.bawei.com.day10_demo3.MyListView>

        </LinearLayout>

    </com.handmark.pulltorefresh.library.PullToRefreshScrollView>



</LinearLayout>

main_activity

package zhanghaijiao.bawei.com.day10_demo3;

import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private PullToRefreshScrollView psv;

    private int pageIndex=1;
    private int operType=1;//1:刷新 2:加载更多

    private String myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex;

    private  List<ResultData.DataBeanX.DataBean> datas=new ArrayList<>();
    private ListViewAdapter adapter;
    private ListView listView;
    private ViewPager viewPager;
    private List<String> imgUrls=new ArrayList<>();
    private LinearLayout linPoint;

    private List<ImageView> lists=new ArrayList<>();
    private Handler mHandler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            int cIndex=viewPager.getCurrentItem();
            cIndex++;
            viewPager.setCurrentItem(cIndex);

            //改变指示器
            setSelectedPoint(cIndex%lists.size());


            sendEmptyMessageDelayed(0,1000);

        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        psv = findViewById(R.id.psv);
        listView = findViewById(R.id.lv);
        viewPager = findViewById(R.id.vp);
        linPoint = findViewById(R.id.lin_point);




        //初使化 pullToRefreshScrollView
        initPsv();


        //请求网络数据
        requestNetData();





    }

    private void requestNetData() {
        new MyTask().execute(myurl);

    }
    class MyTask extends AsyncTask<String,Void,String> {

        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                urlConnection.setRequestMethod("GET");
                urlConnection.setReadTimeout(5000);
                urlConnection.setConnectTimeout(5000);

                if(urlConnection.getResponseCode()==200){
                    InputStream inputStream = urlConnection.getInputStream();

                    String s = streamToString(inputStream);
                    return s;



                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);

            Gson gson=new Gson();
            ResultData resultData = gson.fromJson(s, ResultData.class);
            //新请求下来的数据
            List<ResultData.DataBeanX.DataBean> data = resultData.getData().getData();

            //展示轮播图
            showPics(data);


            if(operType==1){
                datas.clear();//清空
            }
            datas.addAll(data);

            setAdapter();

            //关闭头尾布局
            psv.onRefreshComplete();





        }
    }

    private void showPics(List<ResultData.DataBeanX.DataBean> data) {
        imgUrls.clear();
        //为轮播图添加地址
        imgUrls.add("http://365jia.cn/uploads/"+data.get(0).getPics().get(0));
        imgUrls.add("http://365jia.cn/uploads/"+data.get(1).getPics().get(0));
        imgUrls.add("http://365jia.cn/uploads/"+data.get(2).getPics().get(0));

        MyVpAdapter adapter=new MyVpAdapter(imgUrls,MainActivity.this);
        viewPager.setAdapter(adapter);

        //初使化指示器
        initPoint();


        //发送消息,实现自动轮播
        mHandler.sendEmptyMessageDelayed(0,1000);
    }

    //设置选中的小圆点
    private  void setSelectedPoint(int pageIndex){
        for (int i = 0; i <lists.size() ; i++) {
            if(i==pageIndex){
                lists.get(i).setImageResource(R.drawable.point_selected);
            }else {
                lists.get(i).setImageResource(R.drawable.point_unselected);
            }

        }

    }

    private void initPoint() {
        for (int i = 0; i <imgUrls.size() ; i++) {
            ImageView imageView=new ImageView(this);
            //设置它的布局参数
            LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
            params.setMargins(0,0,10,0);//设置右边的间隔
            if(i==0){
                imageView.setImageResource(R.drawable.point_selected);//选中的小圆点
            }else{
                imageView.setImageResource(R.drawable.point_unselected);
            }
            linPoint.addView(imageView,params);

            lists.add(imageView);
        }

    }

    public void setAdapter(){
        if (adapter == null) {
            adapter = new ListViewAdapter(datas,MainActivity.this);
            listView.setAdapter(adapter);
        }else {
            adapter.notifyDataSetChanged();
        }

    }

    /**
     * 将流转换成String
     * @param stream
     */
    private String streamToString(InputStream stream) {
        StringBuilder sbuilder=new StringBuilder();
        String str;
        BufferedReader reader=new BufferedReader(new InputStreamReader(stream));

        try {
            while ((str=reader.readLine())!=null){
                sbuilder.append(str);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  sbuilder.toString();

    }

    private void initPsv() {
        //1.设置模式
        psv.setMode(PullToRefreshBase.Mode.BOTH);
        //2.设置监听
        psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                //刷新回调
                operType=1;
                pageIndex=1;
                myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex;
                requestNetData();

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                //加载回调
                operType=2;
                pageIndex++;
                myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex;
                requestNetData();

            }
        });
    }
}

ResultData

 /**
     * httpStatusCode : 200
     * code : 0
     * data : {"page":1,"perpage":20,"max_page":130,"total":2591,"data":[{"id":3524385,"title":"合肥城市总体规划编制大调研工作启动 今年12月完成总规纲要初步成果","link":"lsapp://cn.ahurls.news/news?id=3524385","pics":["appletrecommend/201804/5ade91c99a715.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":394,"comment_amount_label":"0","views_label":"394"},{"id":3524236,"title":"快了!合肥\u201c租售同权\u201d配套入学政策最迟5月底制定","link":"lsapp://cn.ahurls.news/news?id=3524236","pics":["appletrecommend/201804/5ade6af7f0bdf.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":5,"source":"","type_sign":"","inner_news":1,"views":1073,"comment_amount_label":"5","views_label":"1073"},{"id":3524304,"title":"合肥城隍庙综合改造基本结束 小商品世界\u201c五一\u201d回归","link":"lsapp://cn.ahurls.news/news?id=3524304","pics":["appletrecommend/201804/5ade8dd32c6af.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":596,"comment_amount_label":"0","views_label":"596"},{"id":3524230,"title":"共享轮椅现身合肥扫码即可推走 前2小时免费之后2元/小时","link":"lsapp://cn.ahurls.news/news?id=3524230","pics":["appletrecommend/201804/5ade65ada6d9a.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":3,"source":"","type_sign":"","inner_news":1,"views":1037,"comment_amount_label":"3","views_label":"1037"},{"id":3524084,"title":"《钱途》第111期:合肥小三劝退师 服务高端家庭从业十余年\u201c接单\u201d1000多件","link":"lsapp://cn.ahurls.news/image_news?id=3524084","pics":["special/tuku/201804/5add9971130ea73397.jpg","special/tuku/201804/5add997053c4743125.jpg","special/tuku/201804/5add9970c876320792.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1810,"comment_amount_label":"2","views_label":"1810","pics_new":["special/tuku/201804/5add9971130ea73397.jpg"]},{"id":3524190,"title":"调查:合肥整治餐饮油烟关停1500余家店,你家楼下还有吗?","link":"lsapp://cn.ahurls.news/news?id=3524190","pics":["appletrecommend/201804/5adbc9336ad61.jpg"],"t":"url","type":"vote","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":4,"source":"","type_sign":"投票","inner_news":1,"views":694,"comment_amount_label":"4","views_label":"694","pics_new":["appletrecommend/201804/5adbc9336ad61.jpg"]},{"id":3524271,"title":"合肥全力推进\u201c厕所革命\u201d 4A级以上景区需配\u201c第三卫生间\u201d","link":"lsapp://cn.ahurls.news/news?id=3524271","pics":["appletrecommend/201804/5ade8ec4de18c.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":470,"comment_amount_label":"0","views_label":"470"},{"id":3524232,"title":"合肥市中心图书馆设计方案出炉 设有下沉广场和多层观景平台","link":"lsapp://cn.ahurls.news/news?id=3524232","pics":["appletrecommend/201804/5ade655ad5710.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1225,"comment_amount_label":"2","views_label":"1225"},{"id":3523945,"title":"《门生》:合肥00后成安徽史上首位中传播音艺考全国第一考生 已揽获5所高校艺考合格证","link":"lsapp://cn.ahurls.news/image_news?id=3523945","pics":["special/tuku/201804/5add914c99d7d67189.jpg","special/tuku/201804/5add5910a971d45459.jpg","special/tuku/201804/5add5936f40f773472.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":3118,"comment_amount_label":"2","views_label":"3118","pics_new":["special/tuku/201804/5add914c99d7d67189.jpg"]},{"id":3524506,"title":"合肥地铁3号线阜淮区间双线贯通 已有30条单线隧道贯通","link":"lsapp://cn.ahurls.news/news?id=3524506","pics":["appletrecommend/201804/5adea08287125.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":138,"comment_amount_label":"0","views_label":"138"},{"id":3524498,"title":"安徽今起雨过天晴气温将逐步回升 29日前后还有降水过程","link":"lsapp://cn.ahurls.news/news?id=3524498","pics":["appletrecommend/201804/5adea01bb50af.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":154,"comment_amount_label":"0","views_label":"154"},{"id":3524231,"title":"合肥一小区物业尝试推行刷卡乘电梯 辖区社居委要求暂停","link":"lsapp://cn.ahurls.news/news?id=3524231","pics":["appletrecommend/201804/5ade66ce49ec3.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":3,"source":"","type_sign":"","inner_news":1,"views":1248,"comment_amount_label":"3","views_label":"1248"},{"id":3523430,"title":"【专题】桂林龙舟侧翻17人亡 遇难人员家属:我眼睁睁看着儿子在水中挣扎","link":"lsapp://cn.ahurls.news/special?id=3523430","pics":["18/0422/5adbf3bcbec54.jpg"],"t":"url","type":"special","alias":"headline","pic_amount":0,"style":"single_fill","comment_amount":2,"source":"","type_sign":"专题","inner_news":1,"views":4075,"comment_amount_label":"2","views_label":"4075","pics_new":["18/0422/5adbf3bcbec54.jpg"]},{"id":3524380,"title":"水壶里发现避孕套 在烧水壶里尿尿 还有大妈竟用酒店热水壶做这种事...","link":"lsapp://cn.ahurls.news/news?id=3524380","pics":["appletrecommend/201804/5ade8fb8ec477.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":442,"comment_amount_label":"2","views_label":"442"},{"id":3524340,"title":"合肥城区示范性菜市场有奖征集 提档升级\u201c金点子\u201d及标识(Logo)等你来定","link":"lsapp://cn.ahurls.news/news?id=3524340","pics":["appletrecommend/201804/5ade8a4720eff.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":316,"comment_amount_label":"0","views_label":"316"},{"id":3524246,"title":"18岁女孩称被合租女生带回的男生砍毁容 左脸缝200多针","link":"lsapp://cn.ahurls.news/image_news?id=3524246","pics":["special/tuku/201804/5ade6e4db78b193298.jpg","special/tuku/201804/5ade6e4da76c711305.jpg","special/tuku/201804/5ade6e4d84c1e32717.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":1965,"comment_amount_label":"1","views_label":"1965","pics_new":["special/tuku/201804/5ade6e4db78b193298.jpg","special/tuku/201804/5ade6e4da76c711305.jpg","special/tuku/201804/5ade6e4d84c1e32717.jpg"]},{"id":3524118,"title":"上周合肥4盘开盘推500余套房源 网传经开某盘将加推超4000组客户预约","link":"lsapp://cn.ahurls.news/news?id=3524118","pics":["appletrecommend/201804/5ade6414ef95f.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":867,"comment_amount_label":"1","views_label":"867"},{"id":3524224,"title":"合肥7家A级景区获评\u201c平安景区\u201d 包公园已连续两年获此殊荣","link":"lsapp://cn.ahurls.news/news?id=3524224","pics":["appletrecommend/201804/5ade639f47cd9.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":718,"comment_amount_label":"1","views_label":"718"},{"id":3522438,"title":"【专题】五一还去挤黄山?这才是合肥人假期最值得去的9个地方!","link":"lsapp://cn.ahurls.news/special?id=3522438","pics":["18/0419/5ad85e298287a.jpg"],"t":"url","type":"special","alias":"headline","pic_amount":0,"style":"single_fill","comment_amount":2,"source":"","type_sign":"专题","inner_news":1,"views":3875,"comment_amount_label":"2","views_label":"3875","pics_new":["18/0419/5ad85e298287a.jpg"]},{"id":3524350,"title":"安徽将建立教师个人信用制度 建立师德考核\u201c负面清单\u201d","link":"lsapp://cn.ahurls.news/news?id=3524350","pics":["appletrecommend/201804/5ade989c2758d.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":353,"comment_amount_label":"0","views_label":"353"},{"id":3524068,"title":"合肥兵哥哥们的爱情故事 泪目!异地军恋那些事儿","link":"lsapp://cn.ahurls.news/news?id=3524068","pics":["appletrecommend/201804/5ade64496d7a0.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1022,"comment_amount_label":"2","views_label":"1022"},{"id":3524391,"title":"25岁小伙如何月\u201c赚\u201d100万?肥西一男子信了!","link":"lsapp://cn.ahurls.news/image_news?id=3524391","pics":["special/tuku/201804/5ade8d81a6b8f80659.jpg","special/tuku/201804/5ade8d81be67582864.jpg","special/tuku/201804/5ade8d81e18cf26738.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":1507,"comment_amount_label":"0","views_label":"1507","pics_new":["special/tuku/201804/5ade8d81a6b8f80659.jpg"]},{"id":3524237,"title":"合肥2家开发商因拒绝公积金贷款 被要求限期改正","link":"lsapp://cn.ahurls.news/news?id=3524237","pics":["appletrecommend/201804/5ade69aad18a1.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":931,"comment_amount_label":"1","views_label":"931"},{"id":3524295,"title":"突发!广东KTV火灾致18死5伤 初步调查系人为纵火","link":"lsapp://cn.ahurls.news/news?id=3524295","pics":["appletrecommend/201804/5ade929e082b2.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":1039,"comment_amount_label":"1","views_label":"1039"},{"id":3524234,"title":"过期药毒性惊人!误服威胁生命 竟有人3折回收后卖到农村、小诊所","link":"lsapp://cn.ahurls.news/news?id=3524234","pics":["appletrecommend/201804/5ade673140628.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1763,"comment_amount_label":"2","views_label":"1763"},{"id":3524433,"title":"小乌龟\u201c成精了\u201d?色彩丰富还有卡通造型 8块1只!","link":"lsapp://cn.ahurls.news/image_news?id=3524433","pics":["special/tuku/201804/5ade9163920d570240.jpg","special/tuku/201804/5ade9163d04bd20937.jpg","special/tuku/201804/5ade9163eb66044417.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":858,"comment_amount_label":"0","views_label":"858","pics_new":["special/tuku/201804/5ade9163920d570240.jpg"]},{"id":3524516,"title":"河南36名高中生未按时就寝遭劝退 教体局回应:校方处理过激","link":"lsapp://cn.ahurls.news/news?id=3524516","pics":["appletrecommend/201804/5adea41b4d356.png"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":84,"comment_amount_label":"0","views_label":"84"},{"id":3524509,"title":"少女洗澡煤气爆炸全身90%特重烧伤 17岁高二女孩忍痛报警","link":"lsapp://cn.ahurls.news/news?id=3524509","pics":["appletrecommend/201804/5adea3cf0523e.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":2306,"comment_amount_label":"0","views_label":"2306"},{"id":3524394,"title":"合肥:擅自设置入河排污口将被追责 县级以上政府需两月一检","link":"lsapp://cn.ahurls.news/news?id=3524394","pics":["appletrecommend/201804/5adea386e023f.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":251,"comment_amount_label":"0","views_label":"251"},{"id":3524523,"title":"泰国男子直播打女友 因欠债压力大 怀疑被劈腿","link":"lsapp://cn.ahurls.news/image_news?id=3524523","pics":["special/tuku/201804/5adea1f93bd8f63280.jpg","special/tuku/201804/5adea1f8af17149308.jpg","special/tuku/201804/5adea1f8c609f10899.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":1507,"comment_amount_label":"0","views_label":"1507","pics_new":["special/tuku/201804/5adea1f93bd8f63280.jpg"]}],"extras":{"slider":[{"id":3524270,"pic":"18/0424/5ade8cee6a463.jpg","link":"lsapp://cn.ahurls.news/news?id=3524270","t":"url","inner_news":1,"title":"5月合肥杂技、音乐剧轮番上演","type":"nomal","type_sign":""},{"id":3524248,"pic":"18/0424/5ade70d2452d1.jpg","link":"lsapp://cn.ahurls.news/news?id=3524248","t":"url","inner_news":1,"title":"合肥水源故里小镇项目初步规划出炉","type":"nomal","type_sign":""},{"id":3524128,"pic":"18/0423/5addcfe577447.jpg","link":"lsapp://cn.ahurls.news/news?id=3524128","t":"url","inner_news":1,"title":"合肥2018义务教育招生方案5月出台","type":"nomal","type_sign":""},{"id":3523709,"pic":"18/0423/5add7461af5b5.jpg","link":"lsapp://cn.ahurls.news/news?id=3523709","t":"url","inner_news":1,"title":"安徽6批次不合格酒被下架召回","type":"nomal","type_sign":""},{"id":3516306,"pic":"18/0408/5ac9e1309834b.jpg","link":"lsapp://cn.ahurls.news/news?id=3516306","t":"url","inner_news":1,"title":"3月份勋章积分奖励名单出炉啦!","type":"nomal","type_sign":""}]},"bindtips":""}
     */

    private int httpStatusCode;
    private int code;
    private DataBeanX data;

    public int getHttpStatusCode() {
        return httpStatusCode;
    }

    public void setHttpStatusCode(int httpStatusCode) {
        this.httpStatusCode = httpStatusCode;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public DataBeanX getData() {
        return data;
    }

    public void setData(DataBeanX data) {
        this.data = data;
    }

    public static class DataBeanX {
        /**
         * page : 1
         * perpage : 20
         * max_page : 130
         * total : 2591
         * data : [{"id":3524385,"title":"合肥城市总体规划编制大调研工作启动 今年12月完成总规纲要初步成果","link":"lsapp://cn.ahurls.news/news?id=3524385","pics":["appletrecommend/201804/5ade91c99a715.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":394,"comment_amount_label":"0","views_label":"394"},{"id":3524236,"title":"快了!合肥\u201c租售同权\u201d配套入学政策最迟5月底制定","link":"lsapp://cn.ahurls.news/news?id=3524236","pics":["appletrecommend/201804/5ade6af7f0bdf.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":5,"source":"","type_sign":"","inner_news":1,"views":1073,"comment_amount_label":"5","views_label":"1073"},{"id":3524304,"title":"合肥城隍庙综合改造基本结束 小商品世界\u201c五一\u201d回归","link":"lsapp://cn.ahurls.news/news?id=3524304","pics":["appletrecommend/201804/5ade8dd32c6af.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":596,"comment_amount_label":"0","views_label":"596"},{"id":3524230,"title":"共享轮椅现身合肥扫码即可推走 前2小时免费之后2元/小时","link":"lsapp://cn.ahurls.news/news?id=3524230","pics":["appletrecommend/201804/5ade65ada6d9a.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":3,"source":"","type_sign":"","inner_news":1,"views":1037,"comment_amount_label":"3","views_label":"1037"},{"id":3524084,"title":"《钱途》第111期:合肥小三劝退师 服务高端家庭从业十余年\u201c接单\u201d1000多件","link":"lsapp://cn.ahurls.news/image_news?id=3524084","pics":["special/tuku/201804/5add9971130ea73397.jpg","special/tuku/201804/5add997053c4743125.jpg","special/tuku/201804/5add9970c876320792.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1810,"comment_amount_label":"2","views_label":"1810","pics_new":["special/tuku/201804/5add9971130ea73397.jpg"]},{"id":3524190,"title":"调查:合肥整治餐饮油烟关停1500余家店,你家楼下还有吗?","link":"lsapp://cn.ahurls.news/news?id=3524190","pics":["appletrecommend/201804/5adbc9336ad61.jpg"],"t":"url","type":"vote","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":4,"source":"","type_sign":"投票","inner_news":1,"views":694,"comment_amount_label":"4","views_label":"694","pics_new":["appletrecommend/201804/5adbc9336ad61.jpg"]},{"id":3524271,"title":"合肥全力推进\u201c厕所革命\u201d 4A级以上景区需配\u201c第三卫生间\u201d","link":"lsapp://cn.ahurls.news/news?id=3524271","pics":["appletrecommend/201804/5ade8ec4de18c.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":470,"comment_amount_label":"0","views_label":"470"},{"id":3524232,"title":"合肥市中心图书馆设计方案出炉 设有下沉广场和多层观景平台","link":"lsapp://cn.ahurls.news/news?id=3524232","pics":["appletrecommend/201804/5ade655ad5710.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1225,"comment_amount_label":"2","views_label":"1225"},{"id":3523945,"title":"《门生》:合肥00后成安徽史上首位中传播音艺考全国第一考生 已揽获5所高校艺考合格证","link":"lsapp://cn.ahurls.news/image_news?id=3523945","pics":["special/tuku/201804/5add914c99d7d67189.jpg","special/tuku/201804/5add5910a971d45459.jpg","special/tuku/201804/5add5936f40f773472.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":3118,"comment_amount_label":"2","views_label":"3118","pics_new":["special/tuku/201804/5add914c99d7d67189.jpg"]},{"id":3524506,"title":"合肥地铁3号线阜淮区间双线贯通 已有30条单线隧道贯通","link":"lsapp://cn.ahurls.news/news?id=3524506","pics":["appletrecommend/201804/5adea08287125.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":138,"comment_amount_label":"0","views_label":"138"},{"id":3524498,"title":"安徽今起雨过天晴气温将逐步回升 29日前后还有降水过程","link":"lsapp://cn.ahurls.news/news?id=3524498","pics":["appletrecommend/201804/5adea01bb50af.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":154,"comment_amount_label":"0","views_label":"154"},{"id":3524231,"title":"合肥一小区物业尝试推行刷卡乘电梯 辖区社居委要求暂停","link":"lsapp://cn.ahurls.news/news?id=3524231","pics":["appletrecommend/201804/5ade66ce49ec3.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":3,"source":"","type_sign":"","inner_news":1,"views":1248,"comment_amount_label":"3","views_label":"1248"},{"id":3523430,"title":"【专题】桂林龙舟侧翻17人亡 遇难人员家属:我眼睁睁看着儿子在水中挣扎","link":"lsapp://cn.ahurls.news/special?id=3523430","pics":["18/0422/5adbf3bcbec54.jpg"],"t":"url","type":"special","alias":"headline","pic_amount":0,"style":"single_fill","comment_amount":2,"source":"","type_sign":"专题","inner_news":1,"views":4075,"comment_amount_label":"2","views_label":"4075","pics_new":["18/0422/5adbf3bcbec54.jpg"]},{"id":3524380,"title":"水壶里发现避孕套 在烧水壶里尿尿 还有大妈竟用酒店热水壶做这种事...","link":"lsapp://cn.ahurls.news/news?id=3524380","pics":["appletrecommend/201804/5ade8fb8ec477.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":442,"comment_amount_label":"2","views_label":"442"},{"id":3524340,"title":"合肥城区示范性菜市场有奖征集 提档升级\u201c金点子\u201d及标识(Logo)等你来定","link":"lsapp://cn.ahurls.news/news?id=3524340","pics":["appletrecommend/201804/5ade8a4720eff.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":316,"comment_amount_label":"0","views_label":"316"},{"id":3524246,"title":"18岁女孩称被合租女生带回的男生砍毁容 左脸缝200多针","link":"lsapp://cn.ahurls.news/image_news?id=3524246","pics":["special/tuku/201804/5ade6e4db78b193298.jpg","special/tuku/201804/5ade6e4da76c711305.jpg","special/tuku/201804/5ade6e4d84c1e32717.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":1965,"comment_amount_label":"1","views_label":"1965","pics_new":["special/tuku/201804/5ade6e4db78b193298.jpg","special/tuku/201804/5ade6e4da76c711305.jpg","special/tuku/201804/5ade6e4d84c1e32717.jpg"]},{"id":3524118,"title":"上周合肥4盘开盘推500余套房源 网传经开某盘将加推超4000组客户预约","link":"lsapp://cn.ahurls.news/news?id=3524118","pics":["appletrecommend/201804/5ade6414ef95f.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":867,"comment_amount_label":"1","views_label":"867"},{"id":3524224,"title":"合肥7家A级景区获评\u201c平安景区\u201d 包公园已连续两年获此殊荣","link":"lsapp://cn.ahurls.news/news?id=3524224","pics":["appletrecommend/201804/5ade639f47cd9.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":718,"comment_amount_label":"1","views_label":"718"},{"id":3522438,"title":"【专题】五一还去挤黄山?这才是合肥人假期最值得去的9个地方!","link":"lsapp://cn.ahurls.news/special?id=3522438","pics":["18/0419/5ad85e298287a.jpg"],"t":"url","type":"special","alias":"headline","pic_amount":0,"style":"single_fill","comment_amount":2,"source":"","type_sign":"专题","inner_news":1,"views":3875,"comment_amount_label":"2","views_label":"3875","pics_new":["18/0419/5ad85e298287a.jpg"]},{"id":3524350,"title":"安徽将建立教师个人信用制度 建立师德考核\u201c负面清单\u201d","link":"lsapp://cn.ahurls.news/news?id=3524350","pics":["appletrecommend/201804/5ade989c2758d.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":353,"comment_amount_label":"0","views_label":"353"},{"id":3524068,"title":"合肥兵哥哥们的爱情故事 泪目!异地军恋那些事儿","link":"lsapp://cn.ahurls.news/news?id=3524068","pics":["appletrecommend/201804/5ade64496d7a0.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1022,"comment_amount_label":"2","views_label":"1022"},{"id":3524391,"title":"25岁小伙如何月\u201c赚\u201d100万?肥西一男子信了!","link":"lsapp://cn.ahurls.news/image_news?id=3524391","pics":["special/tuku/201804/5ade8d81a6b8f80659.jpg","special/tuku/201804/5ade8d81be67582864.jpg","special/tuku/201804/5ade8d81e18cf26738.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":1507,"comment_amount_label":"0","views_label":"1507","pics_new":["special/tuku/201804/5ade8d81a6b8f80659.jpg"]},{"id":3524237,"title":"合肥2家开发商因拒绝公积金贷款 被要求限期改正","link":"lsapp://cn.ahurls.news/news?id=3524237","pics":["appletrecommend/201804/5ade69aad18a1.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":931,"comment_amount_label":"1","views_label":"931"},{"id":3524295,"title":"突发!广东KTV火灾致18死5伤 初步调查系人为纵火","link":"lsapp://cn.ahurls.news/news?id=3524295","pics":["appletrecommend/201804/5ade929e082b2.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":1,"source":"","type_sign":"","inner_news":1,"views":1039,"comment_amount_label":"1","views_label":"1039"},{"id":3524234,"title":"过期药毒性惊人!误服威胁生命 竟有人3折回收后卖到农村、小诊所","link":"lsapp://cn.ahurls.news/news?id=3524234","pics":["appletrecommend/201804/5ade673140628.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":2,"source":"","type_sign":"","inner_news":1,"views":1763,"comment_amount_label":"2","views_label":"1763"},{"id":3524433,"title":"小乌龟\u201c成精了\u201d?色彩丰富还有卡通造型 8块1只!","link":"lsapp://cn.ahurls.news/image_news?id=3524433","pics":["special/tuku/201804/5ade9163920d570240.jpg","special/tuku/201804/5ade9163d04bd20937.jpg","special/tuku/201804/5ade9163eb66044417.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":858,"comment_amount_label":"0","views_label":"858","pics_new":["special/tuku/201804/5ade9163920d570240.jpg"]},{"id":3524516,"title":"河南36名高中生未按时就寝遭劝退 教体局回应:校方处理过激","link":"lsapp://cn.ahurls.news/news?id=3524516","pics":["appletrecommend/201804/5adea41b4d356.png"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":84,"comment_amount_label":"0","views_label":"84"},{"id":3524509,"title":"少女洗澡煤气爆炸全身90%特重烧伤 17岁高二女孩忍痛报警","link":"lsapp://cn.ahurls.news/news?id=3524509","pics":["appletrecommend/201804/5adea3cf0523e.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":2306,"comment_amount_label":"0","views_label":"2306"},{"id":3524394,"title":"合肥:擅自设置入河排污口将被追责 县级以上政府需两月一检","link":"lsapp://cn.ahurls.news/news?id=3524394","pics":["appletrecommend/201804/5adea386e023f.jpg"],"t":"url","type":"normal","alias":"headline","pic_amount":0,"style":"single_right","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":251,"comment_amount_label":"0","views_label":"251"},{"id":3524523,"title":"泰国男子直播打女友 因欠债压力大 怀疑被劈腿","link":"lsapp://cn.ahurls.news/image_news?id=3524523","pics":["special/tuku/201804/5adea1f93bd8f63280.jpg","special/tuku/201804/5adea1f8af17149308.jpg","special/tuku/201804/5adea1f8c609f10899.jpg"],"t":"url","type":"images","alias":"headline","pic_amount":3,"style":"multi","comment_amount":0,"source":"","type_sign":"","inner_news":1,"views":1507,"comment_amount_label":"0","views_label":"1507","pics_new":["special/tuku/201804/5adea1f93bd8f63280.jpg"]}]
         * extras : {"slider":[{"id":3524270,"pic":"18/0424/5ade8cee6a463.jpg","link":"lsapp://cn.ahurls.news/news?id=3524270","t":"url","inner_news":1,"title":"5月合肥杂技、音乐剧轮番上演","type":"nomal","type_sign":""},{"id":3524248,"pic":"18/0424/5ade70d2452d1.jpg","link":"lsapp://cn.ahurls.news/news?id=3524248","t":"url","inner_news":1,"title":"合肥水源故里小镇项目初步规划出炉","type":"nomal","type_sign":""},{"id":3524128,"pic":"18/0423/5addcfe577447.jpg","link":"lsapp://cn.ahurls.news/news?id=3524128","t":"url","inner_news":1,"title":"合肥2018义务教育招生方案5月出台","type":"nomal","type_sign":""},{"id":3523709,"pic":"18/0423/5add7461af5b5.jpg","link":"lsapp://cn.ahurls.news/news?id=3523709","t":"url","inner_news":1,"title":"安徽6批次不合格酒被下架召回","type":"nomal","type_sign":""},{"id":3516306,"pic":"18/0408/5ac9e1309834b.jpg","link":"lsapp://cn.ahurls.news/news?id=3516306","t":"url","inner_news":1,"title":"3月份勋章积分奖励名单出炉啦!","type":"nomal","type_sign":""}]}
         * bindtips :
         */

        private int page;
        private int perpage;
        private int max_page;
        private int total;
        private ExtrasBean extras;
        private String bindtips;
        private List<DataBean> data;

        public int getPage() {
            return page;
        }

        public void setPage(int page) {
            this.page = page;
        }

        public int getPerpage() {
            return perpage;
        }

        public void setPerpage(int perpage) {
            this.perpage = perpage;
        }

        public int getMax_page() {
            return max_page;
        }

        public void setMax_page(int max_page) {
            this.max_page = max_page;
        }

        public int getTotal() {
            return total;
        }

        public void setTotal(int total) {
            this.total = total;
        }

        public ExtrasBean getExtras() {
            return extras;
        }

        public void setExtras(ExtrasBean extras) {
            this.extras = extras;
        }

        public String getBindtips() {
            return bindtips;
        }

        public void setBindtips(String bindtips) {
            this.bindtips = bindtips;
        }

        public List<DataBean> getData() {
            return data;
        }

        public void setData(List<DataBean> data) {
            this.data = data;
        }

        public static class ExtrasBean {
            private List<SliderBean> slider;

            public List<SliderBean> getSlider() {
                return slider;
            }

            public void setSlider(List<SliderBean> slider) {
                this.slider = slider;
            }

            public static class SliderBean {
                /**
                 * id : 3524270
                 * pic : 18/0424/5ade8cee6a463.jpg
                 * link : lsapp://cn.ahurls.news/news?id=3524270
                 * t : url
                 * inner_news : 1
                 * title : 5月合肥杂技、音乐剧轮番上演
                 * type : nomal
                 * type_sign :
                 */

                private int id;
                private String pic;
                private String link;
                private String t;
                private int inner_news;
                private String title;
                private String type;
                private String type_sign;

                public int getId() {
                    return id;
                }

                public void setId(int id) {
                    this.id = id;
                }

                public String getPic() {
                    return pic;
                }

                public void setPic(String pic) {
                    this.pic = pic;
                }

                public String getLink() {
                    return link;
                }

                public void setLink(String link) {
                    this.link = link;
                }

                public String getT() {
                    return t;
                }

                public void setT(String t) {
                    this.t = t;
                }

                public int getInner_news() {
                    return inner_news;
                }

                public void setInner_news(int inner_news) {
                    this.inner_news = inner_news;
                }

                public String getTitle() {
                    return title;
                }

                public void setTitle(String title) {
                    this.title = title;
                }

                public String getType() {
                    return type;
                }

                public void setType(String type) {
                    this.type = type;
                }

                public String getType_sign() {
                    return type_sign;
                }

                public void setType_sign(String type_sign) {
                    this.type_sign = type_sign;
                }
            }
        }

        public static class DataBean {
            /**
             * id : 3524385
             * title : 合肥城市总体规划编制大调研工作启动 今年12月完成总规纲要初步成果
             * link : lsapp://cn.ahurls.news/news?id=3524385
             * pics : ["appletrecommend/201804/5ade91c99a715.jpg"]
             * t : url
             * type : normal
             * alias : headline
             * pic_amount : 0
             * style : single_right
             * comment_amount : 0
             * source :
             * type_sign :
             * inner_news : 1
             * views : 394
             * comment_amount_label : 0
             * views_label : 394
             * pics_new : ["special/tuku/201804/5add9971130ea73397.jpg"]
             */

            private int id;
            private String title;
            private String link;
            private String t;
            private String type;
            private String alias;
            private int pic_amount;
            private String style;
            private int comment_amount;
            private String source;
            private String type_sign;
            private int inner_news;
            private int views;
            private String comment_amount_label;
            private String views_label;
            private List<String> pics;
            private List<String> pics_new;

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getTitle() {
                return title;
            }

            public void setTitle(String title) {
                this.title = title;
            }

            public String getLink() {
                return link;
            }

            public void setLink(String link) {
                this.link = link;
            }

            public String getT() {
                return t;
            }

            public void setT(String t) {
                this.t = t;
            }

            public String getType() {
                return type;
            }

            public void setType(String type) {
                this.type = type;
            }

            public String getAlias() {
                return alias;
            }

            public void setAlias(String alias) {
                this.alias = alias;
            }

            public int getPic_amount() {
                return pic_amount;
            }

            public void setPic_amount(int pic_amount) {
                this.pic_amount = pic_amount;
            }

            public String getStyle() {
                return style;
            }

            public void setStyle(String style) {
                this.style = style;
            }

            public int getComment_amount() {
                return comment_amount;
            }

            public void setComment_amount(int comment_amount) {
                this.comment_amount = comment_amount;
            }

            public String getSource() {
                return source;
            }

            public void setSource(String source) {
                this.source = source;
            }

            public String getType_sign() {
                return type_sign;
            }

            public void setType_sign(String type_sign) {
                this.type_sign = type_sign;
            }

            public int getInner_news() {
                return inner_news;
            }

            public void setInner_news(int inner_news) {
                this.inner_news = inner_news;
            }

            public int getViews() {
                return views;
            }

            public void setViews(int views) {
                this.views = views;
            }

            public String getComment_amount_label() {
                return comment_amount_label;
            }

            public void setComment_amount_label(String comment_amount_label) {
                this.comment_amount_label = comment_amount_label;
            }

            public String getViews_label() {
                return views_label;
            }

            public void setViews_label(String views_label) {
                this.views_label = views_label;
            }

            public List<String> getPics() {
                return pics;
            }

            public void setPics(List<String> pics) {
                this.pics = pics;
            }

            public List<String> getPics_new() {
                return pics_new;
            }

            public void setPics_new(List<String> pics_new) {
                this.pics_new = pics_new;
            }
        }
    }

ListViewAdapter

package zhanghaijiao.bawei.com.day10_demo3;

import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private PullToRefreshScrollView psv;

    private int pageIndex=1;
    private int operType=1;//1:刷新 2:加载更多

    private String myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex;

    private  List<ResultData.DataBeanX.DataBean> datas=new ArrayList<>();
    private ListViewAdapter adapter;
    private ListView listView;
    private ViewPager viewPager;
    private List<String> imgUrls=new ArrayList<>();
    private LinearLayout linPoint;

    private List<ImageView> lists=new ArrayList<>();
    private Handler mHandler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            int cIndex=viewPager.getCurrentItem();
            cIndex++;
            viewPager.setCurrentItem(cIndex);

            //改变指示器
            setSelectedPoint(cIndex%lists.size());


            sendEmptyMessageDelayed(0,1000);

        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        psv = findViewById(R.id.psv);
        listView = findViewById(R.id.lv);
        viewPager = findViewById(R.id.vp);
        linPoint = findViewById(R.id.lin_point);




        //初使化 pullToRefreshScrollView
        initPsv();


        //请求网络数据
        requestNetData();





    }

    private void requestNetData() {
        new MyTask().execute(myurl);

    }
    class MyTask extends AsyncTask<String,Void,String> {

        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                urlConnection.setRequestMethod("GET");
                urlConnection.setReadTimeout(5000);
                urlConnection.setConnectTimeout(5000);

                if(urlConnection.getResponseCode()==200){
                    InputStream inputStream = urlConnection.getInputStream();

                    String s = streamToString(inputStream);
                    return s;



                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);

            Gson gson=new Gson();
            ResultData resultData = gson.fromJson(s, ResultData.class);
            //新请求下来的数据
            List<ResultData.DataBeanX.DataBean> data = resultData.getData().getData();

            //展示轮播图
            showPics(data);


            if(operType==1){
                datas.clear();//清空
            }
            datas.addAll(data);

            setAdapter();

            //关闭头尾布局
            psv.onRefreshComplete();





        }
    }

    private void showPics(List<ResultData.DataBeanX.DataBean> data) {
        imgUrls.clear();
        //为轮播图添加地址
        imgUrls.add("http://365jia.cn/uploads/"+data.get(0).getPics().get(0));
        imgUrls.add("http://365jia.cn/uploads/"+data.get(1).getPics().get(0));
        imgUrls.add("http://365jia.cn/uploads/"+data.get(2).getPics().get(0));

        MyVpAdapter adapter=new MyVpAdapter(imgUrls,MainActivity.this);
        viewPager.setAdapter(adapter);

        //初使化指示器
        initPoint();


        //发送消息,实现自动轮播
        mHandler.sendEmptyMessageDelayed(0,1000);
    }

    //设置选中的小圆点
    private  void setSelectedPoint(int pageIndex){
        for (int i = 0; i <lists.size() ; i++) {
            if(i==pageIndex){
                lists.get(i).setImageResource(R.drawable.point_selected);
            }else {
                lists.get(i).setImageResource(R.drawable.point_unselected);
            }

        }

    }

    private void initPoint() {
        for (int i = 0; i <imgUrls.size() ; i++) {
            ImageView imageView=new ImageView(this);
            //设置它的布局参数
            LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
            params.setMargins(0,0,10,0);//设置右边的间隔
            if(i==0){
                imageView.setImageResource(R.drawable.point_selected);//选中的小圆点
            }else{
                imageView.setImageResource(R.drawable.point_unselected);
            }
            linPoint.addView(imageView,params);

            lists.add(imageView);
        }

    }

    public void setAdapter(){
        if (adapter == null) {
            adapter = new ListViewAdapter(datas,MainActivity.this);
            listView.setAdapter(adapter);
        }else {
            adapter.notifyDataSetChanged();
        }

    }

    /**
     * 将流转换成String
     * @param stream
     */
    private String streamToString(InputStream stream) {
        StringBuilder sbuilder=new StringBuilder();
        String str;
        BufferedReader reader=new BufferedReader(new InputStreamReader(stream));

        try {
            while ((str=reader.readLine())!=null){
                sbuilder.append(str);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  sbuilder.toString();

    }

    private void initPsv() {
        //1.设置模式
        psv.setMode(PullToRefreshBase.Mode.BOTH);
        //2.设置监听
        psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                //刷新回调
                operType=1;
                pageIndex=1;
                myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex;
                requestNetData();

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                //加载回调
                operType=2;
                pageIndex++;
                myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex;
                requestNetData();

            }
        });
    }
}

MyListView

package zhanghaijiao.bawei.com.day10_demo3;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

/**
 * Created by jane on 2018/4/24.
 */

public class MyListView extends ListView {
    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    //测量
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        //重新计算高度
        int newHeight=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, newHeight);
    }
}

MyVpAdapter

package zhanghaijiao.bawei.com.day10_demo3;

import android.content.Context;
import android.graphics.Bitmap;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import java.util.List;

/**
 * Created by jane on 2018/4/24.
 */

public class MyVpAdapter extends PagerAdapter {

    //数据源
    private List<String> urls;
    //上下文对象
    private Context context;

    private DisplayImageOptions options;

    public MyVpAdapter(List<String> urls, Context context) {
        this.urls = urls;
        this.context = context;
        this.options=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式  1px=2个字节  ARGB_8888 1px=4个字节   ARGB_4444 1px=2个字节  ALPHA_8 1px=1个字节
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .build();
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView=new ImageView(context);
        //下载图片
        ImageLoader.getInstance().displayImage(urls.get(position%urls.size()),imageView,options);

        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        //super.destroyItem(container, position, object);
        container.removeView((View)object);
    }
}

MyApplication

package zhanghaijiao.bawei.com.day10_demo3;

import android.app.Application;
import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import java.io.File;

/**
 * Created by jane on 2018/4/17.
 */

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        //自定义图片的缓存路径
        File cachefile=new File( Environment.getExternalStorageDirectory().getPath()+"/abc");


        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(480, 800)//缓存图片最大的长和宽
                .threadPoolSize(2)//线程池的数量
                .threadPriority(4)
                .memoryCacheSize(2*1024*1024)//设置内存缓存区大小
                .diskCacheSize(20*1024*1024)//设置sd卡缓存区大小
                .diskCache(new UnlimitedDiscCache(cachefile))//自定义缓存目录
                .writeDebugLogs()//打印日志内容
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
                .build();
        ImageLoader.getInstance().init(configuration);

    }
}

item

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv"
     />
</RelativeLayout>

pull

compile 'com.github.userswlwork:pull-to-refresh:1.0.0'

猜你喜欢

转载自www.cnblogs.com/sdfkjg/p/viewpageadapter.html