主要要呈现的效果

package com.example.news_consulting_project.fragment;

import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
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.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.example.news_consulting_project.R;
import com.example.news_consulting_project.adapter.Fragmentone_ViewPagerAdapter;
import com.example.news_consulting_project.adapter.MyAdapter;
import com.example.news_consulting_project.beans.WangLuo;
import com.example.news_consulting_project.utils.HttpUtils;
import com.example.news_consulting_project.utils.Judgment_Network;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.utils.L;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Fragment_one extends Fragment{

    private String[] imgs={
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639296673&di=43114bdbe3faae553881cc3ef1c60322&imgtype=0&src=http%3A%2F%2Fdesk.fd.zol-img.com.cn%2Ft_s960x600c5%2Fg5%2FM00%2F04%2F0C%2FChMkJljeDCmIOQJLAAsSVSpxRywAAbPVwG-PqsACxJt217.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639356358&di=6bbeba2abbfefc2b20f49dea1fbbf327&imgtype=0&src=http%3A%2F%2Fimg.tuku.cn%2Ffile_big%2F201504%2F0c07f3655d38407aa8f0be5192c4e72e.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639493748&di=1b1f702c851df08de659d575d3f19561&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F2%2F5879a27b12a30.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639493747&di=f7dd31c220f09f384dc717816889afbc&imgtype=0&src=http%3A%2F%2Fimg.sj33.cn%2Fuploads%2Fallimg%2F201211%2F20121114133513139.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1530234463&di=99688fc3606ef9855b731d7da814061b&imgtype=jpg&er=1&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201410%2F02%2F233404gc5kp58b7oc9pleu.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529639894632&di=fe8d97c2bbdec06d66ab8f68a08455db&imgtype=0&src=http%3A%2F%2Fy2.ifengimg.com%2Fa%2F2014_52%2F94eee5d08311efb.jpg",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1530235165&di=8cdeaf64b1cee9668f985227dd1b76cc&imgtype=jpg&er=1&src=http%3A%2F%2Fimg.pintu360.com%2Fwp-content%2Fuploads%2F2015%2F03%2F5fae62bca5d2c05bc7920705c64b06a2.jpg%3Fx-oss-process%3Dstyle%2Farticle-detail-744",
            "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529553594735&di=4133e5bb6f4221acbc673d0518e34ed6&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D1706558701%2C1505343713%26fm%3D214%26gp%3D0.jpg",
    };
    private ViewPager viewPager;
    private LinearLayout linearLayout;
    private HttpUtils httpUtils;
    private boolean connectivity;
    private RelativeLayout relativeLayout;
    private List<ImageView> image_list= new ArrayList<>();
    private  List<WangLuo.ResultsBean> list = new ArrayList<>();
    private Fragmentone_ViewPagerAdapter adapter;
    private String path = "http://gank.io/api/search/query/listview/";
    private int page=1;
    private MyAdapter adapter1;

    //接受当前的页
    private int num ;
    private PullToRefreshListView  pullToRefreshListView;
    //
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            //接受当前的位置
            num = viewPager.getCurrentItem();

            //改变页面的选中
            viewPager.setCurrentItem(num+1);
            handler.sendEmptyMessageDelayed(1,2000);

        }
    };

  //单列
    public static Fragment getInstance(String title){
        //创建Fragmentone
        Fragment_one fragment_one = new Fragment_one();
        //创建bundle
        Bundle bundle = new Bundle();
        //添加值
        bundle.putString("title",title);
        //把值添加到Arguments中
        fragment_one.setArguments(bundle);

        return fragment_one;
    }
    //1.开始view
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Log.i("TAG","onCreateView");
        View view = inflater.inflate(R.layout.fragment_one,container,false);
        //获得组件
        initSetView(view);
        return view;
    }

    //2.获得组件
    private void initSetView(View view) {
        viewPager = view.findViewById(R.id.fragmentone_viewpager2);
        linearLayout = view.findViewById(R.id.ll);
        relativeLayout = view.findViewById(R.id.fragment_one_re);
        //获得资源ID
        pullToRefreshListView = view.findViewById(R.id.pull_listview);


        //设置头部底部的视图
        //2.设置模式   BOTH 可以上拉 下拉  pull_from_end代表上拉,pull_from_start代表下拉
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
        //3.都是布尔类型  第一个如果为true 时  当前设置的就是头部  如果第二个为true设置的就是底部
        //先请求上拉刷新
        final ILoadingLayout startLoading= pullToRefreshListView.getLoadingLayoutProxy(true, false);
        startLoading.setPullLabel("下拉刷新");
        startLoading.setRefreshingLabel("正在刷新");
        startLoading.setReleaseLabel("放开刷新");

        ILoadingLayout endLoading = pullToRefreshListView.getLoadingLayoutProxy(false, true);
        endLoading.setPullLabel("上拉加载");
        endLoading.setRefreshingLabel("正在加载");
        endLoading.setReleaseLabel("放开加载");

        //4.接口回调上拉下拉
        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                page = 1;
                getDatas();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //必须在异步中完成  在列表没有数据的时候,不再请求接口,调用当前方法
                        pullToRefreshListView.onRefreshComplete();
                    }
                },2000);

                //可以设置刷新的时间....
                startLoading.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                page+=1;
                getDatas();
                //12.
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {

                        pullToRefreshListView.onRefreshComplete();
                    }
                },2000);
            }
        });

        adapter1 = new MyAdapter(list,getActivity());
        pullToRefreshListView.setAdapter(adapter1);

    }

    //3.页面展示
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        //请求网络状态
         connectivity = Judgment_Network.getInstance().isConnectivity(getActivity());
         //得到title值
         Bundle arguments = getArguments();
        if (arguments.get("title").equals("头条")){
            //请求数据
            //判断当前网络
            if (connectivity){
                //2.1 获得小圆点
                initView();
                //适配器展示viewpager
                adapter = new Fragmentone_ViewPagerAdapter(imgs,getActivity(),handler);
                //4.1加载适配器
                viewPager.setAdapter(adapter);

                handler.sendEmptyMessageDelayed(1,3000);

                //4.1_1轮播图滑动监听
                viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                    @Override
                    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                    }

                    @Override
                    public void onPageSelected(int position) {
                        //通过存入集合中的Imageview   来判断小圆点的样子
                        for (int i = 0; i <image_list.size() ; i++) {
                            if(i == position%image_list.size()){
                                image_list.get(i).setSelected(true);
                            }else {
                                image_list.get(i).setSelected(false);
                            }
                        }
                    }

                    @Override
                    public void onPageScrollStateChanged(int state) {

                    }
                });
            }else {
                //从缓存中取图片
            }
        }


    }

    //获得小圆点
    private void initView() {
        for (int i = 0; i < imgs.length; i++) {
            //创建图片
            ImageView imageView = new ImageView(getActivity());
            //设置选择器
            imageView.setImageResource(R.drawable.image_selector);
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(10,10,10,10);
            linearLayout.addView(imageView,layoutParams);
            //添加到集合中
            image_list.add(imageView);
        }
        //设置默认要显示的轮播图的原点
        image_list.get(0).setSelected(true);
    }
    //请求不同的数据是要做的判断
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);

        Log.i("TAG", "setUserVisibleHint");

        Bundle arguments = getArguments();
        //取值赋值
        if (isVisibleToUser && arguments.get("title").equals("头条")){
            //请求数据
            //判断当前网络
            if(connectivity){
                getData("category/Android/count/10/page/1");
            }else{
                //从缓存中取图片
            }
        }else if(isVisibleToUser && arguments.get("title").equals("娱乐")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/all/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("科技")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/iOS/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("信息")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/休息视频/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("八卦")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/福利/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("北京")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/拓展资源/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("上海")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/前端/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("天津")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/瞎推荐/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("重庆")){
            relativeLayout.setVisibility(View.GONE);

            getData("category/App/count/10/page/1");

            handler.removeCallbacksAndMessages(null);
        }else if(isVisibleToUser && arguments.get("title").equals("大大燕网")){
            relativeLayout.setVisibility(View.GONE);
            handler.removeCallbacksAndMessages(null);
        }

    }




    //请求数据的方法  参数传入分类
   public void getData(String s) {

       httpUtils= HttpUtils.getInstence();
       String url = path+s;
       httpUtils.getdata(url);
        httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
          @Override
          public void getjsondata(String json) {
              Gson  gson = new Gson();
              WangLuo wangLuo = gson.fromJson(json, WangLuo.class);

              List<WangLuo.ResultsBean> results = wangLuo.getResults();

              //8.在list集合中添加数据
              Log.i("TAG",results.size()+"");
              //如果是第一页的数据 清空集合
              if (page == 1){
                  list.clear();
              }
              //将请求到的数据刷新
              list.addAll(results);
              adapter1.notifyDataSetChanged();
          }
      });
    }

    public void getDatas() {
         String  u =    "category/Android/count/10/page/"+page;
        String url = path+u;
        httpUtils.getdata(url);
        httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
            @Override
            public void getjsondata(String json) {
                Gson  gson = new Gson();
                WangLuo wangLuo = gson.fromJson(json, WangLuo.class);

                List<WangLuo.ResultsBean> results = wangLuo.getResults();

                //8.在list集合中添加数据
                Log.i("TAG",results.size()+"");
                //如果是第一页的数据 清空集合
                if (page == 1){
                    list.clear();
                }
                //将请求到的数据刷新
                list.addAll(results);
                adapter1.notifyDataSetChanged();
            }
        });
    }


}
 
 



第二种请求的方式  




package com.example.lianxiti.fragment;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
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.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;

import com.example.lianxiti.MainActivity;
import com.example.lianxiti.R;
import com.example.lianxiti.adapter.MyAdapter;
import com.example.lianxiti.adapter.PagerAdapterOne;
import com.example.lianxiti.beans.Beans;
import com.example.lianxiti.beans.MyBeans;
import com.example.lianxiti.utils.HttpUtils;
import com.example.lianxiti.utils.MyApp;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class FragmentOne extends Fragment{

    private String image_url = "https://www.zhaoapi.cn/ad/getAd";
    private String name_path = "https://www.apiopen.top/novelApi";
    private HttpUtils httpUtils ;
    private ViewPager viewPager;
    private LinearLayout linearLayout;
    private RelativeLayout relativeLayout;
    private PullToRefreshListView pullToRefreshListView;

    private List<ImageView> list_img = new ArrayList<>();
    private List<ImageView> list_img1 = new ArrayList<>();
    private  List<MyBeans.DataBean> list = new ArrayList<>();

    private MyAdapter adapter ;

    private int num;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            num  = viewPager.getCurrentItem();

            viewPager.setCurrentItem(num+1);
            handler.sendEmptyMessageDelayed(1,3000);
        }
    };
    //单列
    public static Fragment getInStance(String title){
        //创建Fragment
        FragmentOne fragmentOne = new FragmentOne();
        Bundle  bundle = new Bundle();

        bundle.putString("title",title);

        fragmentOne.setArguments(bundle);

        return fragmentOne;
    }


    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       View view = inflater.inflate(R.layout.fragmentone,container,false);
       //1.获得组件
        initSetView(view);

        return view;
    }
    //1.2获得组件
    private void initSetView(View view) {
        viewPager = view.findViewById(R.id.fragmentone_view);
        linearLayout = view.findViewById(R.id.fragmentone_l1near);
        relativeLayout = view.findViewById(R.id.fragmentone_r1);
        pullToRefreshListView = view.findViewById(R.id.fragmentone_p);

        //设置
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);

        final ILoadingLayout startLoading = pullToRefreshListView.getLoadingLayoutProxy(true, false);
        startLoading.setPullLabel("下拉刷新");
        startLoading.setRefreshingLabel("正在刷新");
        startLoading.setReleaseLabel("放开刷新");

        ILoadingLayout endLoading = pullToRefreshListView.getLoadingLayoutProxy(false, true);
        endLoading.setPullLabel("上拉加载");
        endLoading.setRefreshingLabel("正在加载");
        endLoading.setReleaseLabel("放开加载");

        //借口回调
        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                getData();
                //可以设置刷新的时间....
                startLoading.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                getData();
            }
        });
        adapter = new MyAdapter(getActivity(), list);
        pullToRefreshListView.setAdapter(adapter);
    }
    //加载视图
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //得到title的值
        Bundle arguments = getArguments();

        if (arguments.get("title").equals("头条")){
            //解析数据
            getDataImage();

        }else {

        }
    }
    //获得图片
    public void getDataImage() {
        httpUtils = HttpUtils.getInstence();
        httpUtils.getdata(image_url);
        httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
            @Override
            public void getjsondata(String json) {
                Gson  gson = new Gson();
                Beans beans = gson.fromJson(json, Beans.class);

                List<Beans.DataBean> list01 = beans.getData();
                Log.i("TAG",list01.size()+"");
                for (int i = 0; i <list01.size(); i++) {
                    String icon = list01.get(i).getIcon();
                    ImageView imageView = new ImageView(getActivity());
                    ImageLoader.getInstance().displayImage(icon,imageView, MyApp.getOptins());
                    list_img.add(imageView);
                    //获得小圆点
                    setRound();
                }

                PagerAdapterOne adapterOne = new PagerAdapterOne(getActivity(),list_img,handler);
                viewPager.setAdapter(adapterOne);
                //
                handler.sendEmptyMessageDelayed(1,3000);

                //监听
                viewPager.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_img1.size(); i++) {
                            if (i==position%list_img.size()){
                                list_img1.get(i).setSelected(true);
                            }else {
                                list_img1.get(i).setSelected(false);
                            }
                        }
                    }

                    @Override
                    public void onPageScrollStateChanged(int state) {

                    }
                });
            }


        });
    }
    //获得小圆点
    private void setRound() {
        for (int i = 0; i <list_img.size() ; i++) {
            ImageView imageView1 = new ImageView(getActivity());
            imageView1.setImageResource(R.drawable.danji);
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(10,10,10,10);
            linearLayout.addView(imageView1,layoutParams);

            list_img1.add(imageView1);
        }
        list_img1.get(0).setSelected(true);
    }

    //请求不同数据进行判断
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        Bundle arguments = getArguments();
        if (isVisibleToUser && arguments.get("title").equals("头条")){
            //获得数据
            getData();
        }else if (isVisibleToUser && arguments.get("title").equals("娱乐")){
            relativeLayout.setVisibility(View.GONE);
            handler.removeCallbacksAndMessages(null);
        }else if (isVisibleToUser && arguments.get("title").equals("科技")){
            relativeLayout.setVisibility(View.GONE);
            handler.removeCallbacksAndMessages(null);
        }else if (isVisibleToUser && arguments.get("title").equals("信息")){
            relativeLayout.setVisibility(View.GONE);
            handler.removeCallbacksAndMessages(null);
        }

    }
    //获得数据
    public void getData() {
        httpUtils = HttpUtils.getInstence();
        String url = name_path;
        httpUtils.getdata(url);
        httpUtils.setHttpLinstener(new HttpUtils.HttpLinstener() {
            @Override
            public void getjsondata(String json) {
                Gson gson = new Gson();
                MyBeans myBeans = gson.fromJson(json, MyBeans.class);
                List<MyBeans.DataBean> data = myBeans.getData();

                list.addAll(data);

                adapter.notifyDataSetChanged();
            }
        });
    }
}


猜你喜欢

转载自blog.csdn.net/qq_41663420/article/details/80794423