抽屉布局+Fragment+TabLayout上导航栏+PullToRefreshListView+轮播图+PullToRefreshGridView

     < pager.setOffscreenPageLimit(4);解决解决滑动事件与轮播图事件冲突>
     <pager.setOffscreenPageLimit(list.size());解决后面数据出不来问题>


                                                            <-----布局--------->
                                                            <?xml version="1.0" encoding="utf-8"?>
                                                            <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                                                android:id="@+id/drawer_layout"
                                                                xmlns:tools="http://schemas.android.com/tools"
                                                                android:layout_width="match_parent"
                                                                android:layout_height="match_parent">

                                                                <!--主内容区域在下面-->

                                                                <RelativeLayout
                                                                    android:id="@+id/frame_layout"
                                                                    android:layout_width="match_parent"
                                                                    android:layout_height="match_parent">
                                                                    <android.support.v4.view.ViewPager
                                                                        android:id="@+id/pager"
                                                                        android:layout_width="match_parent"
                                                                        android:layout_height="match_parent"
                                                                        />
                                                                    <RadioGroup
                                                                        android:id="@+id/group"
                                                                        android:layout_width="match_parent"
                                                                        android:layout_height="wrap_content"
                                                                        android:orientation="horizontal"
                                                                        android:layout_alignParentBottom="true">
                                                                        <RadioButton
                                                                            android:id="@+id/radio_01"
                                                                            android:layout_width="0dp"
                                                                            android:layout_weight="1"
                                                                            android:padding="15dp"
                                                                            android:layout_height="wrap_content"
                                                                            android:button="@null"
                                                                            android:gravity="center"
                                                                            android:checked="true"
                                                                            android:textColor="@color/select_che"
                                                                            android:text="新闻"/>
                                                                        <RadioButton
                                                                            android:id="@+id/radio_02"
                                                                            android:layout_width="0dp"
                                                                            android:layout_weight="1"
                                                                            android:padding="15dp"
                                                                            android:layout_height="wrap_content"
                                                                            android:button="@null"
                                                                            android:gravity="center"
                                                                            android:textColor="@color/select_che"
                                                                            android:text="网格"/>
                                                                        <RadioButton
                                                                            android:id="@+id/radio_03"
                                                                            android:layout_width="0dp"
                                                                            android:layout_weight="1"
                                                                            android:padding="15dp"
                                                                            android:layout_height="wrap_content"
                                                                            android:button="@null"
                                                                            android:gravity="center"
                                                                            android:textColor="@color/select_che"
                                                                            android:text="娱乐"/>
                                                                        <RadioButton
                                                                            android:id="@+id/radio_04"
                                                                            android:layout_width="0dp"
                                                                            android:layout_weight="1"
                                                                            android:padding="15dp"
                                                                            android:layout_height="wrap_content"
                                                                            android:button="@null"
                                                                            android:gravity="center"
                                                                            android:textColor="@color/select_che"
                                                                            android:text="登录"/>
                                                                    </RadioGroup>
                                                                </RelativeLayout>

                                                                <!--抽屉显示的内容-->
                                                                <LinearLayout
                                                                    android:background="#ffffff"
                                                                    android:layout_gravity="left"
                                                                    android:id="@+id/linear_drawer"
                                                                    android:orientation="vertical"
                                                                    android:layout_width="200dp"
                                                                    android:layout_height="match_parent">

                                                                    <ImageView
                                                                        android:layout_gravity="center_horizontal"
                                                                        android:src="@mipmap/ic_launcher"
                                                                        android:layout_width="50dp"
                                                                        android:layout_height="50dp" />
                                                                      <TextView
                                                                          android:text="未登录"
                                                                          android:layout_gravity="center_horizontal"
                                                                          android:layout_width="wrap_content"
                                                                          android:layout_height="wrap_content" />
                                                                    <LinearLayout
                                                                        android:padding="20dp"
                                                                        android:id="@+id/linear_01"
                                                                        android:orientation="horizontal"
                                                                        android:layout_width="200dp"
                                                                        android:layout_marginTop="50dp"
                                                                        android:layout_height="wrap_content">
                                                                        <ImageView
                                                                            android:src="@mipmap/ic_launcher"
                                                                            android:layout_width="20dp"
                                                                            android:layout_height="20dp" />

                                                                        <TextView
                                                                            android:text="QQ登录"
                                                                            android:layout_width="wrap_content"
                                                                            android:layout_height="wrap_content" />
                                                                    </LinearLayout>

                                                                    <LinearLayout
                                                                        android:padding="20dp"
                                                                        android:id="@+id/linear_02"
                                                                        android:orientation="horizontal"
                                                                        android:layout_width="200dp"
                                                                        android:layout_height="wrap_content">
                                                                        <ImageView
                                                                            android:src="@mipmap/ic_launcher"
                                                                            android:layout_width="20dp"
                                                                            android:layout_height="20dp" />

                                                                        <TextView
                                                                            android:text="微信登录"
                                                                            android:layout_width="wrap_content"
                                                                            android:layout_height="wrap_content" />
                                                                    </LinearLayout>

                                                                    <LinearLayout
                                                                        android:padding="20dp"
                                                                        android:id="@+id/linear_03"
                                                                        android:orientation="horizontal"
                                                                        android:layout_width="200dp"
                                                                        android:layout_height="wrap_content">
                                                                        <ImageView
                                                                            android:src="@mipmap/ic_launcher"
                                                                            android:layout_width="20dp"
                                                                            android:layout_height="20dp" />

                                                                        <TextView
                                                                            android:text="微博登录"
                                                                            android:layout_width="wrap_content"
                                                                            android:layout_height="wrap_content" />
                                                                    </LinearLayout>
                                                                </LinearLayout>
                                                            </android.support.v4.widget.DrawerLayout>

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

                                                        <android.support.design.widget.TabLayout
                                                            android:id="@+id/tab_layout"

                                                            android:layout_width="match_parent"
                                                            android:layout_height="50dp"
                                                            app:tabGravity="center"
                                                            app:tabIndicatorColor="#ff0000"
                                                            app:tabMode="scrollable"

                                                            app:tabSelectedTextColor="#ff0000"
                                                            app:tabTextColor="#00ff00">

                                                        </android.support.design.widget.TabLayout>

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

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

                                                    </RelativeLayout>
                                                        <-----PullToRefreshListView----->
                                                        <?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
                                                                xmlns:ptr="http://schemas.android.com/apk/res-auto"
                                                                android:layout_height="match_parent"
                                                                android:layout_width="match_parent"
                                                                android:id="@+id/refresh_list_view"
                                                                ptr:ptrDrawable="@drawable/default_ptr_flip"
                                                                ptr:ptrAnimationStyle="flip"
                                                                ptr:ptrHeaderBackground="#383838"
                                                                ptr:ptrHeaderTextColor="#FFFFFF" >

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

                                                        </LinearLayout>

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

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

                                        </android.support.v4.view.ViewPager>
                                        <LinearLayout
                                            android:id="@+id/linear_layout"
                                            android:layout_width="wrap_content"
                                            android:layout_height="wrap_content"
                                            android:layout_alignBottom="@+id/viewpager"
                                            android:layout_centerHorizontal="true"
                                            android:layout_marginBottom="20dp"
                                            android:orientation="horizontal">

                                        </LinearLayout>
                                        <com.handmark.pulltorefresh.library.PullToRefreshGridView
                                            xmlns:ptr="http://schemas.android.com/apk/res-auto"
                                            android:layout_height="match_parent"
                                            android:layout_width="wrap_content"
                                            android:layout_below="@+id/viewpager"
                                            android:id="@+id/refresh_grid_view"
                                            ptr:ptrDrawable="@drawable/default_ptr_flip"
                                            ptr:ptrAnimationStyle="flip"
                                            ptr:ptrHeaderBackground="#383838"
                                            ptr:ptrHeaderTextColor="#FFFFFF"
                                            android:numColumns="2"
                                        />
                                    </RelativeLayout>
                                                    <----主页面------>
                                                    package com.example.adminjs.zongheti;

                                                import android.support.v4.app.Fragment;
                                                import android.support.v4.app.FragmentActivity;
                                                import android.support.v4.view.ViewPager;
                                                import android.support.v4.widget.DrawerLayout;
                                                import android.support.v7.app.AppCompatActivity;
                                                import android.os.Bundle;
                                                import android.view.View;
                                                import android.widget.LinearLayout;
                                                import android.widget.RadioGroup;
                                                import android.widget.RelativeLayout;
                                                import android.widget.Toast;

                                                import com.example.adminjs.zongheti.Adapter.MaAdapter;
                                                import com.example.adminjs.zongheti.Fragment.Fragment_01;
                                                import com.example.adminjs.zongheti.Fragment.Fragment_02;
                                                import com.example.adminjs.zongheti.Fragment.Fragment_03;
                                                import com.example.adminjs.zongheti.Fragment.Fragment_04;

                                                import java.util.ArrayList;
                                                import java.util.List;

                                                public class MainActivity extends FragmentActivity implements View.OnClickListener {

                                                    private DrawerLayout drawerLayout;
                                                    private RelativeLayout relativeLayout;
                                                    private LinearLayout linearLayout;
                                                    private LinearLayout linear_01;
                                                    private LinearLayout linear_02;
                                                    private LinearLayout linear_03;
                                                    private LinearLayout linear_04;
                                                    private ViewPager pager;
                                                    private RadioGroup group;
                                                    private List<Fragment> list;

                                                    @Override
                                                    protected void onCreate(Bundle savedInstanceState) {
                                                        super.onCreate(savedInstanceState);
                                                        setContentView(R.layout.activity_main);
                                                        drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
                                                        relativeLayout = (RelativeLayout)findViewById(R.id.frame_layout);
                                                        linearLayout = (LinearLayout)findViewById(R.id.linear_drawer);
                                                        pager = (ViewPager)findViewById(R.id.pager);
                                                        group = (RadioGroup)findViewById(R.id.group);
                                                        list = new ArrayList<>();
                                                        list.add(new Fragment_01());
                                                        list.add(new Fragment_02());
                                                        list.add(new Fragment_03());
                                                        list.add(new Fragment_04());
                                                        MaAdapter maAdapter = new MaAdapter(getSupportFragmentManager(), list);
                                                        pager.setAdapter(maAdapter);
                                                        linear_01 = (LinearLayout) findViewById(R.id.linear_01);
                                                        linear_02 = (LinearLayout) findViewById(R.id.linear_02);
                                                        linear_03 = (LinearLayout) findViewById(R.id.linear_03);
                                                        pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                                                            @Override
                                                            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                                                                group.check(group.getChildAt(position).getId());
                                                            }

                                                            @Override
                                                            public void onPageSelected(int position) {

                                                            }

                                                            @Override
                                                            public void onPageScrollStateChanged(int state) {

                                                            }
                                                        });
                                                        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                                                            @Override
                                                            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                                                                switch (i){
                                                                    case R.id.radio_01:
                                                                        pager.setCurrentItem(0,false);
                                                                        break;
                                                                    case R.id.radio_02:
                                                                        pager.setCurrentItem(1,false);
                                                                        break;
                                                                    case R.id.radio_03:
                                                                        pager.setCurrentItem(2,false);
                                                                        break;
                                                                    case R.id.radio_04:
                                                                        pager.setCurrentItem(3,false);
                                                                        break;
                                                                }
                                                            }
                                                        });
                                                        pager.setOffscreenPageLimit(4);
                                                        linear_01.setOnClickListener(this);
                                                        linear_02.setOnClickListener(this);
                                                        linear_03.setOnClickListener(this);
                                                    }

                                                    @Override
                                                    public void onClick(View view) {
                                                        switch (view.getId()){
                                                            case R.id.linear_01:
                                                                Toast.makeText(MainActivity.this,"QQ登录",Toast.LENGTH_SHORT).show();
                                                                drawerLayout.closeDrawers();
                                                                break;
                                                        }
                                                        switch (view.getId()){
                                                            case R.id.linear_02:
                                                                Toast.makeText(MainActivity.this,"微信登录",Toast.LENGTH_SHORT).show();
                                                                drawerLayout.closeDrawers();
                                                                break;
                                                        }
                                                        switch (view.getId()){
                                                            case R.id.linear_03:
                                                                Toast.makeText(MainActivity.this,"微博登录",Toast.LENGTH_SHORT).show();
                                                                drawerLayout.closeDrawers();
                                                                break;
                                                        }


                                                    }
                                                }

                                            <------TabLayout------->
                                            package com.example.adminjs.zongheti.Fragment;

                                            import android.os.Bundle;
                                            import android.support.annotation.Nullable;
                                            import android.support.design.widget.TabLayout;
                                            import android.support.v4.app.Fragment;
                                            import android.support.v4.app.FragmentManager;
                                            import android.support.v4.app.FragmentPagerAdapter;
                                            import android.support.v4.view.ViewPager;
                                            import android.view.LayoutInflater;
                                            import android.view.View;
                                            import android.view.ViewGroup;

                                            import com.example.adminjs.zongheti.NewsFragment;
                                            import com.example.adminjs.zongheti.R;

                                            import java.util.ArrayList;
                                            import java.util.List;

                                            /**
                                             * Created by Adminjs on 2017/9/20.
                                             */
                                            public class Fragment_01 extends Fragment{

                                                private TabLayout tabLayout;
                                                private ViewPager pager;
                                                private List<String> list;

                                                @Nullable
                                                @Override
                                                public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
                                                    View view = inflater.inflate(R.layout.fragment_01, container, false);
                                                    tabLayout = (TabLayout)view.findViewById(R.id.tab_layout);
                                                    pager = (ViewPager)view.findViewById(R.id.view_pager);
                                                    return view;
                                                }

                                                @Override
                                                public void onActivityCreated(@Nullable Bundle savedInstanceState) {
                                                    super.onActivityCreated(savedInstanceState);
                                                    list = new ArrayList<>();
                                                    list.add("福利");
                                                    list.add("Android");
                                                    list.add("IOS");
                                                    list.add("休息视频");
                                                    list.add("拓展资源");
                                                    list.add("前段");
                                                    list.add("all");
                                                    /**
                                                     * viewPager需要设置容器中装的页面数量,默认是三页,,,否则在切换的时候前面的再切换回来就不显示了
                                                     */
                                                    pager.setOffscreenPageLimit(list.size());

                                                    //设置适配器
                                                    pager.setAdapter(new FragmentPagerAdapter(getFragmentManager()) {

                                                        @Override
                                                        public CharSequence getPageTitle(int position) {
                                                            //展示的标题
                                                            return list.get(position);
                                                        }

                                                        @Override
                                                        public Fragment getItem(int position) {
                                                            //....fragment集合viewPager使用的时候,fragment是new出来的
                                                            NewsFragment newsFragment = new NewsFragment();

                                                            Bundle bundle = new Bundle();

                                                            //把当前位置的标题传递过去
                                                            bundle.putString("name",list.get(position));

                                                            newsFragment.setArguments(bundle);

                                                            return newsFragment;
                                                        }

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

                                                    //绑定在一起
                                                    tabLayout.setupWithViewPager(pager);

                                                }
                                            }

                                        <-------PullToRefreshListView----->
                                        package com.example.adminjs.zongheti;

                                        import android.os.AsyncTask;
                                        import android.os.Bundle;
                                        import android.support.annotation.Nullable;
                                        import android.support.v4.app.Fragment;
                                        import android.util.Log;
                                        import android.view.LayoutInflater;
                                        import android.view.View;
                                        import android.view.ViewGroup;
                                        import android.widget.ListView;

                                        import com.example.adminjs.zongheti.Adapter.MaAdapter;
                                        import com.example.adminjs.zongheti.Adapter.MyAdapter;
                                        import com.google.gson.Gson;
                                        import com.handmark.pulltorefresh.library.ILoadingLayout;
                                        import com.handmark.pulltorefresh.library.PullToRefreshBase;
                                        import com.handmark.pulltorefresh.library.PullToRefreshListView;

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

                                        /**
                                         * Created by Adminjs on 2017/9/20.
                                         */
                                        public class NewsFragment extends Fragment {

                                            private PullToRefreshListView refreshListView;
                                            private String param;
                                            private String path;
                                            private int page_num = 1;
                                            private List<DataDataBean.ResultsBean>list = new ArrayList<>();
                                            private MyAdapter myAdapter;

                                            @Nullable
                                            @Override
                                            public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
                                                View view = inflater.inflate(R.layout.frag_layout, container, false);
                                                refreshListView = (PullToRefreshListView) view.findViewById(R.id.refresh_list_view);
                                                return view;
                                            }

                                            @Override
                                            public void onActivityCreated(@Nullable Bundle savedInstanceState) {
                                                super.onActivityCreated(savedInstanceState);
                                                Bundle bundle = getArguments();
                                                param = bundle.getString("name", "Android");
                                                //请求数据,,,设置适配器
                                                getData();

                                                refreshListView.setMode(PullToRefreshBase.Mode.BOTH);

                                                ILoadingLayout startLabels = refreshListView.getLoadingLayoutProxy(true, false);
                                                startLabels.setPullLabel("下拉刷新");
                                                startLabels.setRefreshingLabel("正在刷新...");
                                                startLabels.setReleaseLabel("放开刷新");
                                                ILoadingLayout endLabels = refreshListView.getLoadingLayoutProxy( false, true);
                                                endLabels.setPullLabel("上拉刷新");
                                                endLabels.setRefreshingLabel("正在载入...");
                                                endLabels.setReleaseLabel("放开刷新...");

                                                //设置监听
                                                refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
                                                    @Override
                                                    public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                                                        getRefreshData();
                                                    }

                                                    @Override
                                                    public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                                                        //上拉加载的时候 page_num加一
                                                        page_num ++;
                                                        getData();
                                                    }
                                                });
                                            }

                                            /**
                                             * 获取刷新时的数据...刷新时只访问第一页的数据,,,,刷新的数据需要添加到集合的前边
                                             *
                                             * 刷新完成,,设置适配器之后刷新需要停止
                                             */
                                            private void getRefreshData() {

                                                AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
                                                    @Override
                                                    protected String doInBackground(Void... voids) {

                                                        try {
                                                            String path = "http://gank.io/api/data/"+URLEncoder.encode(param,"utf-8")+"/10/1";

                                                            URL url = new URL(path);
                                                            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

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

                                                            //获取
                                                            int responseCode = connection.getResponseCode();
                                                            if (responseCode == 200){
                                                                InputStream inputStream = connection.getInputStream();

                                                                String json = streamToString(inputStream,"utf-8");

                                                                return json;

                                                            }


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

                                                        return "";
                                                    }

                                                    @Override
                                                    protected void onPostExecute(String s) {
                                                        //解析
                                                        Gson gson = new Gson();

                                                        DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);

                                                        /**
                                                         * 判断数据非空
                                                         */
                                                        if (dataDataBean != null && dataDataBean.getResults() != null){
                                                            //数据添加
                                                            list.addAll(0,dataDataBean.getResults());

                                                            //设置适配器
                                                            setAdapter();

                                                            //停止刷新
                                                            refreshListView.onRefreshComplete();
                                                        }

                                                    }
                                                };

                                                asyncTask.execute();
                                            }

                                            /**
                                             * 这个方法是刚进入界面的时候请求数据,,,,和上拉加载的时候不停的请求数据
                                             *
                                             * page_num每次加载的时候会加1,,,这个方法中数据添加在list集合的后面
                                             *
                                             * 请求设置适配器之后 刷新停止
                                             */
                                            private void getData() {

                                                AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
                                                    @Override
                                                    protected String doInBackground(Void... voids) {

                                                        try {
                                                            String path = "http://gank.io/api/data/"+URLEncoder.encode(param,"utf-8")+"/10/"+page_num;

                                                            URL url = new URL(path);
                                                            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

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

                                                            //获取
                                                            int responseCode = connection.getResponseCode();
                                                            if (responseCode == 200){
                                                                InputStream inputStream = connection.getInputStream();

                                                                String json = streamToString(inputStream,"utf-8");
                                                                Log.i("YYYYYYY",json);
                                                                return json;

                                                            }


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

                                                        return "";
                                                    }

                                                    @Override
                                                    protected void onPostExecute(String s) {
                                                        //解析
                                                        Gson gson = new Gson();

                                                        DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);


                                                        /**
                                                         * 判断数据非空
                                                         */
                                                        if (dataDataBean != null && dataDataBean.getResults() != null){
                                                            //数据添加
                                                            list.addAll(dataDataBean.getResults());//拿到的是每一页的数据的集合

                                                            //设置适配器
                                                            setAdapter();


                                                            //刷新停止
                                                            refreshListView.onRefreshComplete();
                                                        }

                                                    }
                                                };

                                                asyncTask.execute();

                                            }

                                            private void setAdapter() {
                                                if (myAdapter == null){

                                                    myAdapter = new MyAdapter(getActivity(),list);
                                                    refreshListView.setAdapter(myAdapter);
                                                }else {
                                                    myAdapter.notifyDataSetChanged();
                                                }

                                            }

                                            private String streamToString(InputStream inputStream,String charset) {
                                                try {
                                                    InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

                                                    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                                                    String s = null;
                                                    StringBuilder builder = new StringBuilder();
                                                    while ((s = bufferedReader.readLine()) != null){
                                                        builder.append(s);
                                                    }
                                                    Log.i("HHHHHH",bufferedReader.toString());
                                                    bufferedReader.close();
                                                    return builder.toString();

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

                                                return  null;
                                            }
                                        }


                                    <------轮播图+PullToRefreshGridView>
                                        package com.example.adminjs.zongheti;

                                    import android.os.AsyncTask;
                                    import android.os.Bundle;
                                    import android.support.annotation.Nullable;
                                    import android.support.v4.app.Fragment;
                                    import android.util.Log;
                                    import android.view.LayoutInflater;
                                    import android.view.View;
                                    import android.view.ViewGroup;
                                    import android.widget.ListView;

                                    import com.example.adminjs.zongheti.Adapter.MaAdapter;
                                    import com.example.adminjs.zongheti.Adapter.MyAdapter;
                                    import com.google.gson.Gson;
                                    import com.handmark.pulltorefresh.library.ILoadingLayout;
                                    import com.handmark.pulltorefresh.library.PullToRefreshBase;
                                    import com.handmark.pulltorefresh.library.PullToRefreshListView;

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

                                    /**
                                     * Created by Adminjs on 2017/9/20.
                                     */
                                    public class NewsFragment extends Fragment {

                                        private PullToRefreshListView refreshListView;
                                        private String param;
                                        private String path;
                                        private int page_num = 1;
                                        private List<DataDataBean.ResultsBean>list = new ArrayList<>();
                                        private MyAdapter myAdapter;

                                        @Nullable
                                        @Override
                                        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
                                            View view = inflater.inflate(R.layout.frag_layout, container, false);
                                            refreshListView = (PullToRefreshListView) view.findViewById(R.id.refresh_list_view);
                                            return view;
                                        }

                                        @Override
                                        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
                                            super.onActivityCreated(savedInstanceState);
                                            Bundle bundle = getArguments();
                                            param = bundle.getString("name", "Android");
                                            //请求数据,,,设置适配器
                                            getData();

                                            refreshListView.setMode(PullToRefreshBase.Mode.BOTH);

                                            ILoadingLayout startLabels = refreshListView.getLoadingLayoutProxy(true, false);
                                            startLabels.setPullLabel("下拉刷新");
                                            startLabels.setRefreshingLabel("正在刷新...");
                                            startLabels.setReleaseLabel("放开刷新");
                                            ILoadingLayout endLabels = refreshListView.getLoadingLayoutProxy( false, true);
                                            endLabels.setPullLabel("上拉刷新");
                                            endLabels.setRefreshingLabel("正在载入...");
                                            endLabels.setReleaseLabel("放开刷新...");

                                            //设置监听
                                            refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
                                                @Override
                                                public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                                                    getRefreshData();
                                                }

                                                @Override
                                                public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                                                    //上拉加载的时候 page_num加一
                                                    page_num ++;
                                                    getData();
                                                }
                                            });
                                        }

                                        /**
                                         * 获取刷新时的数据...刷新时只访问第一页的数据,,,,刷新的数据需要添加到集合的前边
                                         *
                                         * 刷新完成,,设置适配器之后刷新需要停止
                                         */
                                        private void getRefreshData() {

                                            AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
                                                @Override
                                                protected String doInBackground(Void... voids) {

                                                    try {
                                                        String path = "http://gank.io/api/data/"+URLEncoder.encode(param,"utf-8")+"/10/1";

                                                        URL url = new URL(path);
                                                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

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

                                                        //获取
                                                        int responseCode = connection.getResponseCode();
                                                        if (responseCode == 200){
                                                            InputStream inputStream = connection.getInputStream();

                                                            String json = streamToString(inputStream,"utf-8");

                                                            return json;

                                                        }


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

                                                    return "";
                                                }

                                                @Override
                                                protected void onPostExecute(String s) {
                                                    //解析
                                                    Gson gson = new Gson();

                                                    DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);

                                                    /**
                                                     * 判断数据非空
                                                     */
                                                    if (dataDataBean != null && dataDataBean.getResults() != null){
                                                        //数据添加
                                                        list.addAll(0,dataDataBean.getResults());

                                                        //设置适配器
                                                        setAdapter();

                                                        //停止刷新
                                                        refreshListView.onRefreshComplete();
                                                    }

                                                }
                                            };

                                            asyncTask.execute();
                                        }

                                        /**
                                         * 这个方法是刚进入界面的时候请求数据,,,,和上拉加载的时候不停的请求数据
                                         *
                                         * page_num每次加载的时候会加1,,,这个方法中数据添加在list集合的后面
                                         *
                                         * 请求设置适配器之后 刷新停止
                                         */
                                        private void getData() {

                                            AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
                                                @Override
                                                protected String doInBackground(Void... voids) {

                                                    try {
                                                        String path = "http://gank.io/api/data/"+URLEncoder.encode(param,"utf-8")+"/10/"+page_num;

                                                        URL url = new URL(path);
                                                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

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

                                                        //获取
                                                        int responseCode = connection.getResponseCode();
                                                        if (responseCode == 200){
                                                            InputStream inputStream = connection.getInputStream();

                                                            String json = streamToString(inputStream,"utf-8");
                                                            Log.i("YYYYYYY",json);
                                                            return json;

                                                        }


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

                                                    return "";
                                                }

                                                @Override
                                                protected void onPostExecute(String s) {
                                                    //解析
                                                    Gson gson = new Gson();

                                                    DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);


                                                    /**
                                                     * 判断数据非空
                                                     */
                                                    if (dataDataBean != null && dataDataBean.getResults() != null){
                                                        //数据添加
                                                        list.addAll(dataDataBean.getResults());//拿到的是每一页的数据的集合

                                                        //设置适配器
                                                        setAdapter();


                                                        //刷新停止
                                                        refreshListView.onRefreshComplete();
                                                    }

                                                }
                                            };

                                            asyncTask.execute();

                                        }

                                        private void setAdapter() {
                                            if (myAdapter == null){

                                                myAdapter = new MyAdapter(getActivity(),list);
                                                refreshListView.setAdapter(myAdapter);
                                            }else {
                                                myAdapter.notifyDataSetChanged();
                                            }

                                        }

                                        private String streamToString(InputStream inputStream,String charset) {
                                            try {
                                                InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

                                                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                                                String s = null;
                                                StringBuilder builder = new StringBuilder();
                                                while ((s = bufferedReader.readLine()) != null){
                                                    builder.append(s);
                                                }
                                                Log.i("HHHHHH",bufferedReader.toString());
                                                bufferedReader.close();
                                                return builder.toString();

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

                                            return  null;
                                        }
                                    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值