Fragment传值-ImagView轮播

来源:互联网 发布:淘宝悠悠球店铺 编辑:程序博客网 时间:2024/06/07 16:33
package com.yuekao_lianxi2.fragment;


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


import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.yuekao_lianxi2.R;
import com.yuekao_lianxi2.Util.ImageLoaderUtil;
import com.yuekao_lianxi2.Util.JsonCallBack;
import com.yuekao_lianxi2.Util.NetDataUtil;
import com.yuekao_lianxi2.adapter.MyAdapter;
import com.yuekao_lianxi2.bean.AllContent;


import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
 * Created by 李欣 on 2017/10/25.
 */


public class Fragment_right_GridView extends Fragment implements PullToRefreshBase.OnRefreshListener2{


    private PullToRefreshGridView refresh_grid_view;
    private ImageView gv_img;
    private MyAdapter adapter;
    List<String> urllist = new ArrayList<>();//存放图片url的集合
    List<AllContent.ResultBean.DataBean> list = new ArrayList<>();
    int index = 0;//存放轮播图的索引
    int pagenum = 1;//存放页数的索引
    String name = "土豆";
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_right_gridview, container, false);
        refresh_grid_view = (PullToRefreshGridView) view.findViewById(R.id.refresh_grid_view);
        gv_img = (ImageView) view.findViewById(R.id.gv_img);
        return view;
    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //轮播图
        lunbo();
        //默认显示
        FristShowData();
        //设置刷新模式
        refresh_grid_view.setMode(PullToRefreshBase.Mode.BOTH);
        //设置刷新提示
        ILoadingLayout startLabels = refresh_grid_view
                .getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新");
        startLabels.setRefreshingLabel("正在刷新...");
        startLabels.setReleaseLabel("放开刷新...");
        //加载提示
        ILoadingLayout endLabels = refresh_grid_view.getLoadingLayoutProxy(
                false, true);
        endLabels.setPullLabel("上拉加载");
        endLabels.setRefreshingLabel("正在载入...");
        endLabels.setReleaseLabel("放开刷新...");
        //设置监听
        refresh_grid_view.setOnRefreshListener(this);
    }
    //接收fragment_left传过来的值
    public void setname(String name){
        this.name = name;
    }
    //下拉刷新
    @Override
    public void onPullDownToRefresh(PullToRefreshBase refreshView) {
        FristShowData();
    }
    //上拉加载
    @Override
    public void onPullUpToRefresh(PullToRefreshBase refreshView) {
        loadMore();
    }


    //加载更多的方法
    public void loadMore(){
        pagenum++;
        try {
            String path = "http://apis.juhe.cn/cook/query?key=65481ae0fb17703c15a794aebaec93c5&menu="+URLEncoder.encode(name,"utf-8")+"&rn=9&pn="+pagenum;
            NetDataUtil.getDataFromNet(path, getActivity(), new JsonCallBack() {
                @Override
                public void getjson(String json) {
                    Gson gson = new Gson();
                    AllContent allContent = gson.fromJson(json, AllContent.class);
                    list.addAll(allContent.getResult().getData());//将数据全部添加到集合中
                    setadapter();//设置适配器
                    refresh_grid_view.onRefreshComplete();//停止加载
                }
            });
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
    //刷新的方法
    public void FristShowData() {
        try {
            String path = "http://apis.juhe.cn/cook/query?key=65481ae0fb17703c15a794aebaec93c5&menu="+URLEncoder.encode(name,"utf-8")+"&rn=9&pn="+pagenum;
            NetDataUtil.getDataFromNet(path, getActivity(), new JsonCallBack() {
                @Override
                public void getjson(String json) {
                    Gson gson = new Gson();
                    AllContent allContent = gson.fromJson(json, AllContent.class);
                    list.clear();//清空集合
                    list.addAll(0,allContent.getResult().getData());//将数据全部被添加到集合中
                    setadapter();//设置适配器
                    refresh_grid_view.onRefreshComplete();//停止刷新
                    //设置上次刷新时间
                    Date date = new Date(System.currentTimeMillis());
                    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
                    String time = sdf.format(date);
                    refresh_grid_view.setLastUpdatedLabel("上次刷新时间:"+time);
                }
            });
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }


    }
    //适配器
    private void setadapter() {
        if (adapter == null) {
            //创建适配器
            adapter = new MyAdapter(getActivity(), list);
            //设置适配器
            refresh_grid_view.setAdapter(adapter);
        } else {
            //刷新适配器
            adapter.notifyDataSetChanged();
        }
    }


    Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what == 0){
                index++;
                ImageLoader.getInstance().displayImage(urllist.get(index%urllist.size()),gv_img, ImageLoaderUtil.getdefaultoption());
                handler.sendEmptyMessageDelayed(0,2000);
            }
        }
    };
    //轮播
    private void lunbo() {
        String path = "http://apis.juhe.cn/cook/query?key=65481ae0fb17703c15a794aebaec93c5&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF&rn=9&pn="+pagenum;
        NetDataUtil.getDataFromNet(path, getActivity(), new JsonCallBack() {
            @Override
            public void getjson(String json) {
                Gson gson = new Gson();
                AllContent allContent = gson.fromJson(json, AllContent.class);
                List<AllContent.ResultBean.DataBean> data = allContent.getResult().getData();
                List<AllContent.ResultBean.DataBean.StepsBean> steps = data.get(0).getSteps();
                for (AllContent.ResultBean.DataBean.StepsBean  step: steps) {
                    urllist.add(step.getImg());
                }
                //第一次显示
                ImageLoader.getInstance().displayImage(urllist.get(0),gv_img, ImageLoaderUtil.getdefaultoption());
                //使用handler发送延时消息
                handler.sendEmptyMessageDelayed(0,2000);
            }
        });
    }

}



package com.yuekao_lianxi2.fragment;


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


import com.yuekao_lianxi2.R;


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


/**
 * Created by 李欣 on 2017/10/25.
 */


public class Fragment_Left_ListView extends Fragment {


    private ListView lv;
    private List<String> list;


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


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //设置数据
        list = new ArrayList<>();
        list.add("西红柿");
        list.add("土豆");
        list.add("西芹");
        list.add("西葫芦");
        list.add("豆角");
        list.add("青椒");
        list.add("丝瓜");
        list.add("黄瓜");
        list.add("香菇");
        list.add("油麦");
        list.add("上海青");
        list.add("红薯");
        list.add("洋葱");


        //设置适配器
        lv.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,android.R.id.text1, list));

//条目点击事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                String name = list.get(i);
                Fragment_right_GridView f2 = (Fragment_right_GridView) getActivity().getSupportFragmentManager().findFragmentByTag("f2");
                f2.setname(name);
                f2.FristShowData();
            }
        });


    }
}

原创粉丝点击