请求存入数据库

public class Fragment1 extends Fragment {


    private PullToRefreshListView listView;
    private Banner banner;
    private List<String> image_list;
   
    private int page = 1;
    private List<HasNextBean.DataBean> lists = new ArrayList<>();
    private MyBase adapter;
    private NewsDao dao;




    public static Fragment getinstance(String title){
        //创建Fragment1
        Fragment1 fragment1 = new Fragment1();
        //创建bundle
        Bundle bundle = new Bundle();
        //添加值
        bundle.putString("title",title);
        //把值添加到Arguments中
        fragment1.setArguments(bundle);
        return fragment1;
    }
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {




        View view = inflater.inflate(R.layout.fragmentone,container,false);


        listView = view.findViewById(R.id.listview);
        banner = view.findViewById(R.id.banner);


        return view;
    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        dao = new NewsDao(getActivity());

        //得到值  当展示科技的时候 在进行显示控件
        Bundle bundle = getArguments();
        if(bundle.get("title").equals("科技")){
            lunbo();
            banner.setVisibility(View.VISIBLE);
            listView.setVisibility(View.VISIBLE);
            pull();
        }
    }


    //轮播
    //Viewpager
    public void lunbo(){
        Log.i("WWWWW","2222222");
        HttpUtils.getdata("http://www.wanandroid.com/tools/mockapi/6523/article_channel_list", getActivity(), new InterfaceUtils() {
            @Override
            public void getJson(String json) {


                Log.i("WWWWW",json);
                //请求数据
                Gson gson = new Gson();
                ChannelsBean channelsBean = gson.fromJson(json, ChannelsBean.class);
                List<ChannelsBean.DataBean.FocusListBean> focus_list = channelsBean.getData().getFocus_list();
                //存放网络地址的集合
                image_list = new ArrayList<String>();
                //遍历集合存储
                for (int i = 0;i < focus_list.size();i++){
                    image_list.add(focus_list.get(i).getImage_url());
                    Log.i("WWWWW",focus_list.get(i).getImage_url()+"");
                }
                banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
                //设置图片加载器
                banner.setImageLoader(new MyLoader());
                //设置图片集合
                banner.setImages(image_list);
                //设置banner动画效果
                banner.setBannerAnimation(Transformer.DepthPage);
                //设置自动轮播,默认为true
                banner.isAutoPlay(true);
                //设置轮播时间
                banner.setDelayTime(1500);
                //设置指示器位置(当banner模式中有指示器时)
                banner.setIndicatorGravity(BannerConfig.CENTER);
                //banner设置方法全部调用完毕时最后调用
                banner.start();
            }
        });
    }


    //上拉下拉
    public void pull(){
        String url = path+page+key;
        HttpUtils.getdata(url, getActivity(), new InterfaceUtils() {
            @Override
            public void getJson(String json) {
                //请求分页的数据
                Gson gson = new Gson();
                HasNextBean hasNextBean = gson.fromJson(json, HasNextBean.class);

                List<HasNextBean.DataBean> data = hasNextBean.getData();


                if(page == 1){
                    lists.clear();
                }
                lists.addAll(data);
                //将list集合的数据存入数据库进行缓存
                for (int i = 0;lists.size()>0;i++){
                    String title = lists.get(i).getTitle();
                    String content = lists.get(i).getContent();
                    dao.add(title,content);
                }

                adapter.notifyDataSetChanged();
            }
        });
    }


    //设置PullToRefreshListView
    public void initView(){

        //设置刷新模式 ,both代表支持上拉和下拉,pull_from_end代表上拉,pull_from_start代表下拉
        listView.setMode(PullToRefreshBase.Mode.BOTH);
        /*这里通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别,第一个true 代表下来状态 ,第二个true 代表上拉的状态
        如果想区分上拉和下拉状态的不同,可以分别设置*/
        ILoadingLayout startLabels = listView.getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新");
        startLabels.setRefreshingLabel("正在拉");
        startLabels.setReleaseLabel("放开刷新");
        ILoadingLayout endLabels = listView.getLoadingLayoutProxy(false, true);
        endLabels.setPullLabel("上拉刷新");
        endLabels.setRefreshingLabel("正在载入...");

        endLabels.setReleaseLabel("放开刷新...");


        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                page++;
                pull();//请求数据
            }
           @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                pull();
            }
        });
        adapter = new MyBase(lists,getActivity());
        listView.setAdapter(adapter);
    }
    class MyLoader extends ImageLoader{
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {


            Glide.with(context).load(path).into(imageView);
        }
    }
}

猜你喜欢

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