GridView+轮播图

GridView

轮播图与gridview用一个集合,刷新GridView的时候,轮播图也要刷新

public class FragmentGridView extends Fragment {
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.arg1==0){
                viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
                handler.sendEmptyMessageDelayed(0,2000);
            }

        }
    };

    private View view;
    private ILoadingLayout startLabels;
    List<MenuBean.ResultBean.DataBean> list=new ArrayList<>();
    private GridAdapter gridAdapter;
    private int page_num=1;
    private ViewPager viewPager;
    private PullToRefreshGridView refreshGridView;
    private LunBoTuAdapter lunBoTuAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.gridview_layout,container,false);
        viewPager = (ViewPager) view.findViewById(R.id.viewpager);
        refreshGridView = (PullToRefreshGridView) view.findViewById(R.id.refresh_grid_view);
        viewPager.setCurrentItem(list.size()%2);
       return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        refreshGridView.setMode(PullToRefreshBase.Mode.BOTH);
        startLabels = refreshGridView.getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新");
        startLabels.setRefreshingLabel("正在刷新...");
        startLabels.setReleaseLabel("放开刷新");

        ILoadingLayout endLabels = refreshGridView.getLoadingLayoutProxy(false, true);
        endLabels.setPullLabel("上拉刷新");
        endLabels.setRefreshingLabel("正在载入...");
        endLabels.setReleaseLabel("放开刷新...");
        getDataFromNet();
        refreshGridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
                NetDataUtil.getData("http://apis.juhe.cn/cook/query?key=8f8d012e307185e94e20062dff1f698a&menu=%E9%B1%BC&rn=10&pn=1", getActivity(), new GsonCallBack() {
                    @Override
                    public void getJsonString(String json) {
                        Gson gson = new Gson();
                        MenuBean menuBean = gson.fromJson(json, MenuBean.class);

                        list.clear();
                        list.addAll(0,menuBean.getResult().getData());

                        LunBoTu();
                        setAdapter();
                        //停止刷新
                        refreshGridView.onRefreshComplete();
                        startLabels.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
                    }
                });
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
                page_num++;
                getDataFromNet();
            }
        });

    }



    private void getDataFromNet() {
        NetDataUtil.getData("http://apis.juhe.cn/cook/query?key=8f8d012e307185e94e20062dff1f698a&menu=%E9%B1%BC&rn=10&pn="+page_num, getActivity(), new GsonCallBack() {
            @Override
            public void getJsonString(String json) {
                Gson gson = new Gson();
                MenuBean menuBean = gson.fromJson(json, MenuBean.class);
                list.addAll(menuBean.getResult().getData());
                setAdapter();
                LunBoTu();
                //停止刷新
                refreshGridView.onRefreshComplete();
            }
        });
    }

    private void LunBoTu() {
        if (lunBoTuAdapter == null){
            lunBoTuAdapter = new LunBoTuAdapter(getActivity(), list,handler);
            viewPager.setAdapter(lunBoTuAdapter);
        }else {
            lunBoTuAdapter.notifyDataSetChanged();
        }

        handler.sendEmptyMessageDelayed(0,2000);
    }

    private void setAdapter() {
        if(gridAdapter==null) {
            gridAdapter = new GridAdapter(getActivity(), list);
            refreshGridView.setAdapter(gridAdapter);
        }else{
            gridAdapter.notifyDataSetChanged();
        }
    }

}

适配器

public class GridAdapter extends BaseAdapter {
    Context context;
    List<MenuBean.ResultBean.DataBean> list;
    public GridAdapter(Context context, List<MenuBean.ResultBean.DataBean> list) {
        this.context=context;
        this.list=list;

    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder vh;
        if(convertView==null){
            convertView=View.inflate(context, R.layout.grid_item_layout,null);
            vh=new ViewHolder();
            vh.des= (TextView) convertView.findViewById(R.id.des);
            vh.img= (ImageView) convertView.findViewById(R.id.img);
            convertView.setTag(vh);
        }else{
            vh= (ViewHolder) convertView.getTag();
        }
        ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0),vh.img, ImageUtil.getDefaultOption());
        vh.des.setText(list.get(position).getTitle());
        return convertView;
    }
    class ViewHolder{
        ImageView img;
        TextView des;
    }
}

轮播图适配器

public class LunBoTuAdapter extends PagerAdapter {
    Context context;
    List<MenuBean.ResultBean.DataBean> list;
    public LunBoTuAdapter(Context context, List<MenuBean.ResultBean.DataBean> list, Handler handler) {
        this.context=context;
        this.list=list;
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        container.addView(imageView);
        ImageLoader.getInstance().displayImage(list.get(position%list.size()).getAlbums().get(0),imageView, ImageUtil.getDefaultOption());
        return imageView;
    }

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

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

布局

<android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="200dp"></android.support.v4.view.ViewPager>
        <com.handmark.pulltorefresh.library.PullToRefreshGridView
            xmlns:ptr="http://schemas.android.com/apk/res-auto"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:id="@+id/refresh_grid_view"
            ptr:ptrDrawable="@drawable/default_ptr_flip"
            ptr:ptrAnimationStyle="flip"
            android:numColumns="2"
            ptr:ptrHeaderBackground="#383838"
            ptr:ptrHeaderTextColor="#FFFFFF"  ></com.handmark.pulltorefresh.library.PullToRefreshGridView>

适配器中子布局

<ImageView
        android:id="@+id/img"
        android:layout_width="100dp"
        android:layout_height="100dp" />
    <TextView
        android:id="@+id/des"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值