XListView+ PullToRefreshListView+ViewPager


图1   主页面                                   图二         下拉                                    图3 侧滑


//关联    library

//联网权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

关联XListView   

可以在  XListView汇总   中查看


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    android:id="@+id/dl"

    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" tools:context="bbb.bwie.com.zonghelx.MainActivity">

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

       <ImageView
           android:id="@+id/img"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:background="@mipmap/ic_launcher_round"
           />

    <HorizontalScrollView
        android:id="@+id/hs"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dip"
        >

        <LinearLayout
            android:id="@+id/showtitle"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </LinearLayout>

    </HorizontalScrollView>

       <android.support.v4.view.ViewPager
           android:id="@+id/vp"
           android:layout_width="match_parent"
           android:layout_height="match_parent">

       </android.support.v4.view.ViewPager>

   </LinearLayout>

    <LinearLayout
        android:id="@+id/aaaa"
        android:orientation="horizontal"

        android:layout_gravity="left"
        android:choiceMode="singleChoice"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

<bbb.bwie.com.zonghelx.XListView
    android:id="@+id/xlv"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</bbb.bwie.com.zonghelx.XListView>

    </LinearLayout>

</android.support.v4.widget.DrawerLayout>

xlistviewtext.xml

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

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

    <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
vptextview.xml

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

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/img2"
    />

</LinearLayout>
textview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/img"
    />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/name"
    />

</LinearLayout>
ViewPager循化部分

vp.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:id="@+id/vp"
        >
		</android.support.v4.view.ViewPager>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/ll"
        android:orientation="horizontal"
        ></LinearLayout>

</LinearLayout>

PullToRefreshListView下拉

 fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/pt"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

</LinearLayout>

scenic_item_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/colorAccent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:src="@mipmap/ic_launcher" />

    <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="15dp"
        android:layout_toRightOf="@id/img"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/title1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="名称:" />

        <TextView
            android:id="@+id/title2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/layout1"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@id/img"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="地点:" />

        <TextView
            android:id="@+id/content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />
    </LinearLayout>

</RelativeLayout>

MainActivity.java

package bbb.bwie.com.zonghelx;

import android.graphics.Color;
        import android.os.Handler;
        import android.os.Message;
        import android.support.v4.app.Fragment;
        import android.support.v4.app.FragmentPagerAdapter;
        import android.support.v4.view.ViewPager;
        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;
        import android.util.Log;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.BaseAdapter;
        import android.widget.HorizontalScrollView;
        import android.widget.ImageView;
        import android.widget.LinearLayout;
        import android.widget.TextView;

        import com.google.gson.Gson;
        import com.nostra13.universalimageloader.core.ImageLoader;

        import java.io.BufferedReader;
        import java.io.IOException;
        import java.io.InputStream;
        import java.io.InputStreamReader;
        import java.net.MalformedURLException;
        import java.net.URL;
        import java.net.URLConnection;
        import java.util.ArrayList;
        import java.util.List;


public class MainActivity extends AppCompatActivity implements View.OnClickListener,XListView.IXListViewListener{

    private HorizontalScrollView hs;
    private LinearLayout show;
    private ViewPager vp;
    private String[] titles;
    private ArrayList<TextView> list;
    private XListView xlv;
    private List<Bean2.DataBean.ComicsBean> comics;
    private ArrayList<User2> list2;


    private ViewHolder vh;
    private View view;
    private Mydatd2 mydatd2;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            mydatd2.notifyDataSetChanged();
            close();
        }
    };


    private void close() {
        xlv.stopLoadMore();
        xlv.stopRefresh();
        xlv.setRefreshTime("2017-09-17");
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        hs = (HorizontalScrollView) findViewById(R.id.hs);
        show = (LinearLayout) findViewById(R.id.showtitle);
        vp = (ViewPager) findViewById(R.id.vp);
        //xlistview
        xlv = (XListView) findViewById(R.id.xlv);
        xlv.setPullLoadEnable(true);
        xlv.setPullRefreshEnable(true);
        xlv.setXListViewListener(this);
        new Thread(){

            private StringBuilder builder;

            @Override
            public void run() {
                super.run();
                try {
                    URL url = new URL("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9");
                    try {
                        URLConnection connection = url.openConnection();
                        InputStream inputStream = connection.getInputStream();
                        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                        builder = new StringBuilder();
                        String tem="";
                        while((tem=reader.readLine())!=null){
                            builder.append(tem);
                        }
                        Log.e("========读取到的数据=======", builder.toString());

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                runOnUiThread(new Runnable() {


                    @Override
                    public void run() {
                        list2 = new ArrayList<>();

                        Gson gson = new Gson();
                        Bean2 bean2 = gson.fromJson(builder.toString(), Bean2.class);
                        comics = bean2.getData().getComics();
                        for(int j=0;j<comics.size();j++){
                            String title = comics.get(j).getTitle();
                            Bean2.DataBean.ComicsBean.TopicBean topic = comics.get(j).getTopic();
                            String cover_image_url = topic.getCover_image_url();
                            list2.add(new User2(title,cover_image_url));
                        }
                        mydatd2 = new Mydatd2();

                        xlv.setAdapter(mydatd2);
                    }
                });
            }
        }.start();

        titles = new String[]{"头条", "社会", "国内", "国际", "娱乐", "体育", "军事", "科技", "财经", "时尚"};
        list = new ArrayList<>();
        for(int i=0;i<titles.length;i++){
            TextView view = new TextView(this);
            view.setText(titles[i]);
            view.setTextSize(20);
            if(i==0){
                view.setTextColor(Color.RED);
            }else{
                view.setTextColor(Color.BLACK);

            }
            view.setOnClickListener(this);
            view.setId(i+1000);
            //设置textview控件的宽高
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            params.setMargins(20,10,20,10);//设置内边距
            show.addView(view,params);//将textview控件添加到滚动控件里面的LinearLayout布局
            list.add(view);//添加到集合
        }
        //开始做viewPager
        vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                if(position==0){
                    fragment2 fragment2 = new fragment2();
                    return fragment2;
                }
                return fragment.getin(list.get(position).getText().toString());
            }

            @Override
            public int getCount() {
                return titles.length;
            }
        });
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                for(int i=0;i<list.size();i++){
                    if(position==i){
                        list.get(i).setTextColor(Color.RED);

                    }else{
                        list.get(i).setTextColor(Color.BLACK);

                    }
                }
                TextView textView = list.get(position);
                int width = textView.getWidth();//获取宽度
                //计算该滑到哪里
                hs.scrollTo((width+20)*position,0);//viewpager滑动时与滚动控件想配合一起滑动

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        vp.setCurrentItem(id-1000);


    }


    @Override
    public void onRefresh() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                list2.add(0,new User2("怪物恋人","http://f2.kkmh.com/image/170915/a56o0vmx8.webp-w640"));
            }
        },3000);
        handler.sendEmptyMessageDelayed(0,3000);

    }

    @Override
    public void onLoadMore() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                list2.add(new User2("怪物恋人","http://f2.kkmh.com/image/170915/a56o0vmx8.webp-w640"));
                handler.sendEmptyMessage(0);
            }
        },3000);

    }
    class Mydatd2 extends BaseAdapter{

        @Override
        public int getCount() {
            return list2.size();
        }

        @Override
        public Object getItem(int i) {
            return list2.get(i);
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            if(view==null){
                vh = new ViewHolder();
                view = View.inflate(MainActivity.this, R.layout.xlistviewtext, null);
                vh.name = (TextView) view.findViewById(R.id.name);
                vh.img = (ImageView) view.findViewById(R.id.img);
                view.setTag(vh);

            }else{
                vh= (ViewHolder) view.getTag();

            }
            vh.name.setText(list2.get(i).name);
            ImageLoader.getInstance().displayImage(list2.get(i).imgg, vh.img);
            return view;
        }
    }

    class ViewHolder {
        TextView name;
        ImageView img;
    }
}

Bean.java

import java.util.List;

public class Bean {
    /**
     * code : 200
     * msg : success
     * newslist : [{"ctime":"2017-09-19","description":"环球时报","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46615027.jpg/640","title":"女子叫外卖给了个差评,丈夫被打破头住进了ICU","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779230&signature=CAlSqZ3n0Q8Kt4bBgQEA5K9eg0cIayPvU5pVKjbLJuEeNVcChw5FnDrX1mWr22ffho*faq7Pvjn50nDj61qooov0u0bQYNHdQWJwBa6eUuA="},{"ctime":"2017-09-19","description":"读书","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-18924698.static/640","title":"2017年最感动朋友圈的24张图,你看到第几张哭了?","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779230&signature=Q9sEVt3GsEvTE4mA5HsS603gjFb3nLI8g4PmsWRueYJtGxDWr-XYHoxcsJngodTDNbX8M8jDWz3Al4feeWIqK8k2WuZ-6pAAxzXpuiADlIo="},{"ctime":"2017-09-19","description":"美容","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-38321003.jpg/640","title":"台湾第一女神老去:与其取悦他人,不如活出自我!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779229&signature=QowTA3t3uMqXaYjLyuGsIHXwkqfHG1tRC5XvM-Z7FSlrnbGfWiTiuPIX8ljPkd7lDHpL-ZWfIuC7k3aWY*PNq*njUvns1RuaFx-OJDHKbac="},{"ctime":"2017-09-19","description":"子墨微澜","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-41014815.jpg/640","title":"想那么多干嘛?(精辟)","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779229&signature=bu1CljvHMZmocVPdxpyY2eHL3z7l0T*0n890eLzz5wvQac-B7fUI2*XZ4ukBwNeRFhaTK0R9YFDdvarhuxjUlq7jgzF1-6hWEF17XTFlfzM="},{"ctime":"2017-09-19","description":"中国新闻周刊","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-13543653.jpg/640","title":"如果你时常感到自卑,可能是父母\u201c虐待\u201d过你","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779229&signature=VP1o0Rt*YATe7ZoDsk9KD4BcMPnrn1E4-zIukPe7GXrccA4Fk0ZOPtlnV0iTxWSnF*xpEa8NMcOzpy3nc3cBHKIfCzHIabnSqTUx-mS--y8="},{"ctime":"2017-09-19","description":"音乐图文场景","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46711463.static/640","title":"在吗?云飞新歌《高贵的蔚蓝》,太好听了!必须收 藏!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779228&signature=87KSRM5DMdWJMkQYXTRoowngnewSochWJwudA5cYiQhy4Uh-JAB0fDTslhLllRGREi17ZTvCIO9m6bOmn1sEJHZBRNYLGRiXryYrBT1vDAc="},{"ctime":"2017-09-19","description":"慈怀诗会","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46711221.jpg/640","title":"乐音:一曲《恋人心》,待我一袭袈裟,许你相思放下!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779228&signature=EliKkezrcZlU0mSypyPVxkzpFZ9KO2eoihKpp1VSj6sD97b8EKoYkw7xFqOp*iGNcsNWfB4sL*ln7AFipKgzzZQJ4EpMqdOA9pr-zY3Dsio="},{"ctime":"2017-09-19","description":"品味人生","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-28219915.jpg/640","title":"老了要想活得漂亮,就要立刻扔掉这几样东西!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779227&signature=gwLI3OJDvq3AQ4UB*aypQ39wsBqhPh3T*LR1cDiMBJ08*rLYh7qhetPN7THwLiyfzDT2bTFoS51e-aMCiPNEhT7QjgasCGIaA2PqxWe*2TA="},{"ctime":"2017-09-19","description":"品味人生","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-28219915.jpg/640","title":"无论走到哪里,请记得带上自己的阳光!","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779227&signature=5jFGGqRIRWiWH64M6sG8XHN6RLDY7Gt54aNXQ-JAUE34RZhadZcGHzgnquSCIefOrBk8wXuw72vh4xjPq3D-vuF8IATF458AX2WH6LcmRWM="},{"ctime":"2017-09-19","description":"清净之道","picUrl":"https://zxpic.gtimg.com/infonew/0/wechat_pics_-46710883.jpg/640","title":"人生最大的自由:不再在乎别人对你的评价","url":"https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779227&signature=zoul25DBE8SR4zUWG94mxeOw2BJimbdNa9h2A2OcRdfuPy*ZuxJlZCw2AV8BCvI-vfkVRuqFnPOAmDjffWLBaV1ntXXubhW--ClRhlfVTNI="}]
     */

    private int code;
    private String msg;
    private List<NewslistBean> newslist;

    public int getCode() {
        return code;
    }

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

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public List<NewslistBean> getNewslist() {
        return newslist;
    }

    public void setNewslist(List<NewslistBean> newslist) {
        this.newslist = newslist;
    }

    public static class NewslistBean {
        /**
         * ctime : 2017-09-19
         * description : 环球时报
         * picUrl : https://zxpic.gtimg.com/infonew/0/wechat_pics_-46615027.jpg/640
         * title : 女子叫外卖给了个差评,丈夫被打破头住进了ICU
         * url : https://mp.weixin.qq.com/s?src=16&ver=375×tamp=1505779230&signature=CAlSqZ3n0Q8Kt4bBgQEA5K9eg0cIayPvU5pVKjbLJuEeNVcChw5FnDrX1mWr22ffho*faq7Pvjn50nDj61qooov0u0bQYNHdQWJwBa6eUuA=
         */

        private String ctime;
        private String description;
        private String picUrl;
        private String title;
        private String url;

        public String getCtime() {
            return ctime;
        }

        public void setCtime(String ctime) {
            this.ctime = ctime;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }

        public String getPicUrl() {
            return picUrl;
        }

        public void setPicUrl(String picUrl) {
            this.picUrl = picUrl;
        }

        public String getTitle() {
            return title;
        }

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

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }
    }
}

Bean2.java

import java.util.List;



public class Bean2 {

    /**
     * code : 200
     * data : 
      * message : ok
     */

    private int code;
    private DataBean data;
    private String message;

    public int getCode() {
        return code;
    }

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

    public DataBean getData() {
        return data;
    }

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

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public static class DataBean {
        /**
         * comics : [
        * timestamp : 1505836800
         * since : 1
         */

        private int timestamp;
        private int since;
        private List<ComicsBean> comics;

        public int getTimestamp() {
            return timestamp;
        }

        public void setTimestamp(int timestamp) {
            this.timestamp = timestamp;
        }

        public int getSince() {
            return since;
        }

        public void setSince(int since) {
            this.since = since;
        }

        public List<ComicsBean> getComics() {
            return comics;
        }

        public void setComics(List<ComicsBean> comics) {
            this.comics = comics;
        }

        public static class ComicsBean {
            /**
             * info_type : 0
             * can_view : true
             * updated_count : 0
             * cover_image_url : http://f2.kkmh.com/image/170920/gbtdel0uk.webp-w640
             * created_at : 1505857821
             * title : 第5话 算我求你,别爱我了
             * updated_at : 1505802423
             * selling_kk_currency : 0
             * zoomable : 0
             * push_flag : 1
             * id : 48954
             * comic_type : 0
             * is_liked : false
             * label_color : #b400fa
             * storyboard_cnt : 70
             * url : http://www.kuaikanmanhua.com/comics/48954
             * likes_count : 76927
             * comments_count : 1725
             * label_text : 都市
             * is_free : true
             * topic : {"discover_image_url":"","vertical_image_url":"http://f2.kkmh.com/image/170707/6yh0oiynb.webp-w320","cover_image_url":"http://f2.kkmh.com/image/170707/zaqoiy98j.webp-w640","description":"女生的友谊只是虚假的\u201c塑料花\u201d?爱情只是刀口舔蜜的无知幻想?要在这座城市站稳脚跟必用尽心机手段?原本如蝼蚁在都市中摸索的平凡女生无意卷入一场绯闻事件,从迷茫中找到各自爱与梦想的方向重新出发。这是只属于勇敢女生的成长物语。欢迎来到-绯闻都市。【独家/每周三更新 责编:林早上】","created_at":1499611236,"title":"绯闻都市","updated_at":1498833636,"id":1194,"user":{"pub_feed":0,"avatar_url":"http://f2.kkmh.com/image/170709/kj22zg1m4.webp-w180","grade":1,"nickname":"栗子liz(主笔)+沙荼(主笔)+快看漫画团队","reg_type":"author","id":83119868},"label_id":11,"order":500,"comics_count":6,"status":"published"}
             * shared_count : 0
             * label_text_color : #ffffff
             * serial_no : 0
             * status : published
             */

            private int info_type;
            private boolean can_view;
            private int updated_count;
            private String cover_image_url;
            private int created_at;
            private String title;
            private int updated_at;
            private int selling_kk_currency;
            private int zoomable;
            private int push_flag;
            private int id;
            private int comic_type;
            private boolean is_liked;
            private String label_color;
            private int storyboard_cnt;
            private String url;
            private int likes_count;
            private int comments_count;
            private String label_text;
            private boolean is_free;
            private TopicBean topic;
            private int shared_count;
            private String label_text_color;
            private int serial_no;
            private String status;

            public int getInfo_type() {
                return info_type;
            }

            public void setInfo_type(int info_type) {
                this.info_type = info_type;
            }

            public boolean isCan_view() {
                return can_view;
            }

            public void setCan_view(boolean can_view) {
                this.can_view = can_view;
            }

            public int getUpdated_count() {
                return updated_count;
            }

            public void setUpdated_count(int updated_count) {
                this.updated_count = updated_count;
            }

            public String getCover_image_url() {
                return cover_image_url;
            }

            public void setCover_image_url(String cover_image_url) {
                this.cover_image_url = cover_image_url;
            }

            public int getCreated_at() {
                return created_at;
            }

            public void setCreated_at(int created_at) {
                this.created_at = created_at;
            }

            public String getTitle() {
                return title;
            }

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

            public int getUpdated_at() {
                return updated_at;
            }

            public void setUpdated_at(int updated_at) {
                this.updated_at = updated_at;
            }

            public int getSelling_kk_currency() {
                return selling_kk_currency;
            }

            public void setSelling_kk_currency(int selling_kk_currency) {
                this.selling_kk_currency = selling_kk_currency;
            }

            public int getZoomable() {
                return zoomable;
            }

            public void setZoomable(int zoomable) {
                this.zoomable = zoomable;
            }

            public int getPush_flag() {
                return push_flag;
            }

            public void setPush_flag(int push_flag) {
                this.push_flag = push_flag;
            }

            public int getId() {
                return id;
            }

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

            public int getComic_type() {
                return comic_type;
            }

            public void setComic_type(int comic_type) {
                this.comic_type = comic_type;
            }

            public boolean isIs_liked() {
                return is_liked;
            }

            public void setIs_liked(boolean is_liked) {
                this.is_liked = is_liked;
            }

            public String getLabel_color() {
                return label_color;
            }

            public void setLabel_color(String label_color) {
                this.label_color = label_color;
            }

            public int getStoryboard_cnt() {
                return storyboard_cnt;
            }

            public void setStoryboard_cnt(int storyboard_cnt) {
                this.storyboard_cnt = storyboard_cnt;
            }

            public String getUrl() {
                return url;
            }

            public void setUrl(String url) {
                this.url = url;
            }

            public int getLikes_count() {
                return likes_count;
            }

            public void setLikes_count(int likes_count) {
                this.likes_count = likes_count;
            }

            public int getComments_count() {
                return comments_count;
            }

            public void setComments_count(int comments_count) {
                this.comments_count = comments_count;
            }

            public String getLabel_text() {
                return label_text;
            }

            public void setLabel_text(String label_text) {
                this.label_text = label_text;
            }

            public boolean isIs_free() {
                return is_free;
            }

            public void setIs_free(boolean is_free) {
                this.is_free = is_free;
            }

            public TopicBean getTopic() {
                return topic;
            }

            public void setTopic(TopicBean topic) {
                this.topic = topic;
            }

            public int getShared_count() {
                return shared_count;
            }

            public void setShared_count(int shared_count) {
                this.shared_count = shared_count;
            }

            public String getLabel_text_color() {
                return label_text_color;
            }

            public void setLabel_text_color(String label_text_color) {
                this.label_text_color = label_text_color;
            }

            public int getSerial_no() {
                return serial_no;
            }

            public void setSerial_no(int serial_no) {
                this.serial_no = serial_no;
            }

            public String getStatus() {
                return status;
            }

            public void setStatus(String status) {
                this.status = status;
            }

            public static class TopicBean {
                /**
                 * discover_image_url :
                 * vertical_image_url : http://f2.kkmh.com/image/170707/6yh0oiynb.webp-w320
                 * cover_image_url : http://f2.kkmh.com/image/170707/zaqoiy98j.webp-w640
                 * description : 女生的友谊只是虚假的“塑料花”?爱情只是刀口舔蜜的无知幻想?要在这座城市站稳脚跟必用尽心机手段?原本如蝼蚁在都市中摸索的平凡女生无意卷入一场绯闻事件,从迷茫中找到各自爱与梦想的方向重新出发。这是只属于勇敢女生的成长物语。欢迎来到-绯闻都市。【独家/每周三更新 责编:林早上】
                 * created_at : 1499611236
                 * title : 绯闻都市
                 * updated_at : 1498833636
                 * id : 1194
                 * user : {"pub_feed":0,"avatar_url":"http://f2.kkmh.com/image/170709/kj22zg1m4.webp-w180","grade":1,"nickname":"栗子liz(主笔)+沙荼(主笔)+快看漫画团队","reg_type":"author","id":83119868}
                 * label_id : 11
                 * order : 500
                 * comics_count : 6
                 * status : published
                 */

                private String discover_image_url;
                private String vertical_image_url;
                private String cover_image_url;
                private String description;
                private int created_at;
                private String title;
                private int updated_at;
                private int id;
                private UserBean user;
                private int label_id;
                private int order;
                private int comics_count;
                private String status;

                public String getDiscover_image_url() {
                    return discover_image_url;
                }

                public void setDiscover_image_url(String discover_image_url) {
                    this.discover_image_url = discover_image_url;
                }

                public String getVertical_image_url() {
                    return vertical_image_url;
                }

                public void setVertical_image_url(String vertical_image_url) {
                    this.vertical_image_url = vertical_image_url;
                }

                public String getCover_image_url() {
                    return cover_image_url;
                }

                public void setCover_image_url(String cover_image_url) {
                    this.cover_image_url = cover_image_url;
                }

                public String getDescription() {
                    return description;
                }

                public void setDescription(String description) {
                    this.description = description;
                }

                public int getCreated_at() {
                    return created_at;
                }

                public void setCreated_at(int created_at) {
                    this.created_at = created_at;
                }

                public String getTitle() {
                    return title;
                }

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

                public int getUpdated_at() {
                    return updated_at;
                }

                public void setUpdated_at(int updated_at) {
                    this.updated_at = updated_at;
                }

                public int getId() {
                    return id;
                }

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

                public UserBean getUser() {
                    return user;
                }

                public void setUser(UserBean user) {
                    this.user = user;
                }

                public int getLabel_id() {
                    return label_id;
                }

                public void setLabel_id(int label_id) {
                    this.label_id = label_id;
                }

                public int getOrder() {
                    return order;
                }

                public void setOrder(int order) {
                    this.order = order;
                }

                public int getComics_count() {
                    return comics_count;
                }

                public void setComics_count(int comics_count) {
                    this.comics_count = comics_count;
                }

                public String getStatus() {
                    return status;
                }

                public void setStatus(String status) {
                    this.status = status;
                }

                public static class UserBean {
                    /**
                     * pub_feed : 0
                     * avatar_url : http://f2.kkmh.com/image/170709/kj22zg1m4.webp-w180
                     * grade : 1
                     * nickname : 栗子liz(主笔)+沙荼(主笔)+快看漫画团队
                     * reg_type : author
                     * id : 83119868
                     */

                    private int pub_feed;
                    private String avatar_url;
                    private int grade;
                    private String nickname;
                    private String reg_type;
                    private int id;

                    public int getPub_feed() {
                        return pub_feed;
                    }

                    public void setPub_feed(int pub_feed) {
                        this.pub_feed = pub_feed;
                    }

                    public String getAvatar_url() {
                        return avatar_url;
                    }

                    public void setAvatar_url(String avatar_url) {
                        this.avatar_url = avatar_url;
                    }

                    public int getGrade() {
                        return grade;
                    }

                    public void setGrade(int grade) {
                        this.grade = grade;
                    }

                    public String getNickname() {
                        return nickname;
                    }

                    public void setNickname(String nickname) {
                        this.nickname = nickname;
                    }

                    public String getReg_type() {
                        return reg_type;
                    }

                    public void setReg_type(String reg_type) {
                        this.reg_type = reg_type;
                    }

                    public int getId() {
                        return id;
                    }

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


 fragment.java

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/

public class fragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        Bundle arguments = getArguments();
        String sss = arguments.getString("sss");
        TextView textView = new TextView(getActivity());
        textView.setText(sss);
        return textView;
    }
    public static Fragment getin(String titles){
        fragment fragment0 = new fragment();
        Bundle bundle = new Bundle();
        bundle.putString("sss",titles);
        fragment0.setArguments(bundle);
        return fragment0;
    }
}

fragment2.java

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;



public class fragment2 extends Fragment {


    private PullToRefreshListView pt;
    private StringBuilder builder;
    int i = 1;
    private ptdata ptdata;
    private List<Bean.NewslistBean> newslist;
    List<User> list = new ArrayList<User>();
    private ViewHolder vh;
    private ViewPager vp;
    private LinearLayout ll;
    private View view;
    private ArrayList<ImageView> imagelist;
    private ImageView view1;

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            int i = vp.getCurrentItem() + 1;
            vp.setCurrentItem(i);
            handler.sendEmptyMessageDelayed(0, 2000);
        }
    };


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment, container, false);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        pt = (PullToRefreshListView) view.findViewById(R.id.pt);

        //绘制viewPager子布局
        View view = View.inflate(getActivity(), R.layout.vp, null);
        //获取控件
        vp = (ViewPager) view.findViewById(R.id.vp);
        ll = (LinearLayout) view.findViewById(R.id.ll);
        //添加头布局
        ListView listView = pt.getRefreshableView();
        listView.addHeaderView(view);
        pt.setMode(PullToRefreshBase.Mode.BOTH);

        //适配器
        ptdata = new ptdata();
        pt.setAdapter(ptdata);
        handler.sendEmptyMessageDelayed(0, 2000);

        //异步线程操作
        new Mysanysk().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");
        //pt监听
        //上拉下拉
        pt.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                i = 1;
                new Mysanysk().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                i++;
                new Mysanysk().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10" + i);

            }
        });
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {

                for (int i = 0; i < imagelist.size(); i++) {
                    if (position % newslist.size() == i) {
                        imagelist.get(position % newslist.size()).setImageResource(R.drawable.dot_focuable);
                    } else {
                        imagelist.get(i).setImageResource(R.drawable.dot_normal);
                    }
                }

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });


    }

    //加点
    private void nodata() {
        ll.removeAllViews();
        imagelist = new ArrayList<ImageView>();
        if (imagelist != null) {
            imagelist.clear();
        }
        for (int i = 0; i < newslist.size(); i++) {
            view1 = new ImageView(getActivity());
            if (i == vp.getCurrentItem()) {
                view1.setImageResource(R.drawable.dot_focuable);
            } else {
                view1.setImageResource(R.drawable.dot_normal);
            }
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20);
            params.setMargins(10, 0, 10, 0);
            imagelist.add(view1);
            ll.addView(view1, params);
        }

    }
    //第一步
    //异步

    class Mysanysk extends AsyncTask<String, Void, String> {
        //读取数据

        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url = new URL(strings[0]);
                try {
                    URLConnection connection = url.openConnection();
                    InputStream stream = connection.getInputStream();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
                    builder = new StringBuilder();
                    String tem = "";
                    while ((tem = reader.readLine()) != null) {
                        builder.append(tem);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }

            Log.e("=======读取到的数据==========", builder.toString());
            return builder.toString();
        }
        //解析数据

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            Bean bean = gson.fromJson(builder.toString(), Bean.class);
            newslist = bean.getNewslist();
            for (int i = 0; i < newslist.size(); i++) {
                String picUrl = newslist.get(i).getPicUrl();
                String title = newslist.get(i).getTitle();
                list.add(new User(title, picUrl));
            }

            vp.setAdapter(new vpdata());
            nodata();
            ptdata.notifyDataSetChanged();
            pt.onRefreshComplete();
        }
    }

    //pt的适配器

    class ptdata extends BaseAdapter {

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int i) {
            return list.get(i);
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            if (view == null) {
                vh = new ViewHolder();
                view = View.inflate(getActivity(), R.layout.textview, null);
                vh.name = (TextView) view.findViewById(R.id.name);
                vh.img = (ImageView) view.findViewById(R.id.img);
                view.setTag(vh);


            } else {
                vh = (ViewHolder) view.getTag();

            }
            vh.name.setText(list.get(i).name);
            ImageLoader.getInstance().displayImage(list.get(i).url, vh.img);
            return view;
        }
    }


    class ViewHolder {
        TextView name;
        ImageView img;
    }

    //vp的适配器
    class vpdata extends PagerAdapter {
        private View view;

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

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

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

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            String picUrl = newslist.get(position % newslist.size()).getPicUrl();
            view = View.inflate(getActivity(), R.layout.vptextview, null);
            ImageView img = (ImageView) view.findViewById(R.id.img2);
            ImageLoader.getInstance().displayImage(picUrl, img);
            container.addView(view);
            return view;
        }
    }
}

Appi.java           在权限中加        name=“.Appi”

import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;


public class Appi extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();
        ImageLoader.getInstance().init(build);
    }
}

User.java

public class User {
    public String name;
    public String url;

    public User(String name, String url) {
        this.name = name;
        this.url = url;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", url='" + url + '\'' +
                '}';
    }
}

User2.java

public class User2 {
    public String name;
    public String imgg;

    public User2(String name, String imgg) {
        this.name = name;
        this.imgg = imgg;
    }

    @Override
    public String toString() {
        return "User2{" +
                "name='" + name + '\'' +
                ", imgg='" + imgg + '\'' +
                '}';
    }
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值