多条目加载

package bwei.com.myjd.adapter;

import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

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

import bwei.com.myjd.R;
import bwei.com.myjd.bean.Shouyebean;
import bwei.com.myjd.bean.fl_F_Bean;
import bwei.com.myjd.myview.NoticeView;
import bwei.com.myjd.view.FlXiangQingActivity2;

/**
 * author:Created by WangZhiQiang on 2018/2/14 0014.
 */

public class MyshouyeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    //定义常量  确定多条目加载类型
    final static int TYPE_ONE=1;
    final static int TYPE_TWO=2;
    final static int TYPE_THREE=3;
   // private final List<Shouyebean.DataBean> list;

    private static final String TAG = "MyshouyeAdapter";
    private Context context;
    private Shouyebean shouyebean;
   private List<fl_F_Bean.DataBean> data;
    private List<String> notices;

    private boolean isRun = true;
    private Handler timeHandler;
    private long mHour = 02;
    private long mMin = 15;
    private long mSecond = 36;
    private List<Shouyebean.TuijianBean.ListBean> list;
    private List<Shouyebean.TuijianBean.ListBean> list1;

    /*public MyshouyeAdapter(Context context, Shouyebean shouyebean) {
        this.context = context;
        this.shouyebean = shouyebean;
        this.list = shouyebean.getData();
    }*/

    public MyshouyeAdapter(Context context, Shouyebean shouyebean, List<fl_F_Bean.DataBean> data) {
        this.context = context;
        this.shouyebean = shouyebean;
        this.data = data;
       // this.list = shouyebean.getData();
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        switch (viewType) {

            case TYPE_ONE:
                View inflate = View.inflate(context, R.layout.shouyerc, null);
                Jiugongge jiugongge = new Jiugongge(inflate);
                return jiugongge;
            case TYPE_TWO:
                View inflate1 = View.inflate(context, R.layout.shouye_tuijian, null);
                Tuijian tuijian = new Tuijian(inflate1);
                return tuijian;

            case  TYPE_THREE:
                View inflate2 = View.inflate(context, R.layout.shouyemiaosha_item, null);
                Miaosha miaosha = new Miaosha(inflate2);
                return miaosha;
            //fragment_child1_duo布局文件为RecyclerView控件
            //*case TYPE_TWO:
           /* View inflate1 = View.inflate(context, R.layout.fragment_child1_duo, null);
            feileihodler = new Feileihodler(inflate1);
            return feileihodler;
            //共用一个布局文件
            case TYPE_THREE:
                View inflate2 = View.inflate(context, R.layout.fragment_child1_duo, null);
                Xiangqing xiangqing=new Xiangqing(inflate2);
                return xiangqing;*//**//**/
        }
        return null;
    }
    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {

        if(holder instanceof Jiugongge){
            JiugonggeAdapter jiugonggeAdapter = new JiugonggeAdapter(data,context);
            ((Jiugongge) holder).shouye_rc.setAdapter(jiugonggeAdapter);
            ((Jiugongge) holder).shouye_rc.setLayoutManager(new GridLayoutManager(context,2,GridLayoutManager.HORIZONTAL,false));

            notices = new ArrayList<>();
            notices.add("大促销下单拆福袋,亿万新年红包随便拿");
            notices.add("家电五折团,抢十亿无门槛现金红包");
            notices.add("星球大战剃须刀首发送200元代金券");
            ((Jiugongge) holder).notice_view.addNotice(notices);
            ((Jiugongge) holder).notice_view.startFlipping();
            ((Jiugongge) holder).notice_view.setOnNoticeClickListener(new NoticeView.OnNoticeClickListener() {
                @Override
                public void onNotieClick(int position, String notice) {
                    Toast.makeText(context, notices.get(position),Toast.LENGTH_SHORT).show();
                }
            });
        }
        if(holder instanceof Tuijian){
            Log.d(TAG, "onBindViewHolder: 首页推荐总");
           ((Tuijian) holder).shouye_tuijian_tv.setText("京东推荐");
            list1 = shouyebean.getTuijian().getList();
            Log.d(TAG, "onBindViewHolder: 首页推荐总"+ list1.size());
            TuijianAdapter tuijianAdapter = new TuijianAdapter(context, list1);
            ((Tuijian) holder).shouye_tuijian_rc.setAdapter(tuijianAdapter);
            ((Tuijian) holder).shouye_tuijian_rc.setLayoutManager(new GridLayoutManager(context,1,GridLayoutManager.HORIZONTAL,false));
            tuijianAdapter.huidiao(new TuijianAdapter.Itemclick() {
                @Override
                public void itemclick(View view, int position) {
                    int pid = list1.get(position).getPid();
                    Intent intent = new Intent(context, FlXiangQingActivity2.class);
                    intent.putExtra("pid", pid+"");
                    context.startActivity(intent);
                }
            });
        }
        if(holder instanceof Miaosha){
            ((Miaosha) holder).shouue_miaosha_tv.setText("京东秒杀");
            ((Miaosha) holder).shouue_miaosha_tv1.setText("16点场");

           startRun();
            timeHandler = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    super.handleMessage(msg);
                    if (msg.what == 1) {
                        computeTime();
                        if (mHour < 10) {
                            ((Miaosha) holder).tv_hour.setText("0" + mHour + "");
                        } else {
                            ((Miaosha) holder).tv_hour.setText("0" + mHour + "");
                        }
                        if (mMin < 10) {
                            ((Miaosha) holder).tv_minute.setText("0" + mMin + "");
                        } else {
                            ((Miaosha) holder).tv_minute.setText(mMin + "");
                        }
                        if (mSecond < 10) {
                            ((Miaosha) holder).tv_second.setText("0" + mSecond + "");
                        } else {
                            ((Miaosha) holder).tv_second.setText(mSecond + "");
                        }
                    }
                }


            };
            List<Shouyebean.MiaoshaBean.ListBeanX> list = shouyebean.getMiaosha().getList();
            MiaoshaAdapter miaoshaAdapter = new MiaoshaAdapter(context, list);
            ((Miaosha) holder).miaosha_rv.setAdapter(miaoshaAdapter);
            ((Miaosha) holder).miaosha_rv.setLayoutManager(new GridLayoutManager(context,2));

        }
    }


    /**
     * 开启倒计时
     */
    private void startRun() {
        new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                while (isRun) {
                    try {
                        Thread.sleep(1000); // sleep 1000ms
                        Message message = Message.obtain();
                        message.what = 1;
                        timeHandler.sendMessage(message);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }

    /**
     * 倒计时计算
     */
    private void computeTime() {
        mSecond--;
        if (mSecond < 0) {
            mMin--;
            mSecond = 59;
            if (mMin < 0) {
                mMin = 59;
                mHour--;
            }
        }
    }
    @Override
    public int getItemCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        if(position == 0){
            return TYPE_ONE;
        }
        if(position == 1){
            return TYPE_TWO;
        }
        if(position == 2){
            return TYPE_THREE;
        }
        return  0;
    }

    class Jiugongge extends RecyclerView.ViewHolder {
        public  RecyclerView shouye_rc;
        public NoticeView notice_view;
        public Jiugongge(View itemView) {
            super(itemView);
            this.shouye_rc = itemView.findViewById(R.id.shouye_rc);
            this.notice_view = itemView.findViewById(R.id.notice_view);
        }
    }

    class Tuijian extends RecyclerView.ViewHolder{

        public TextView shouye_tuijian_tv;
        public RecyclerView shouye_tuijian_rc;
        public Tuijian(View itemView) {
            super(itemView);
            this.shouye_tuijian_tv = itemView.findViewById(R.id.shouye_tuijian_tv);
            this.shouye_tuijian_rc = itemView.findViewById(R.id.shouye_tuijian_rc);
        }
    }
    class Miaosha extends RecyclerView.ViewHolder{

        public TextView shouue_miaosha_tv;
        public TextView shouue_miaosha_tv1;
        public TextView tv_hour;
        public TextView tv_minute;
        public TextView tv_second;
        public RecyclerView miaosha_rv;
        public Miaosha(View itemView) {
            super(itemView);
            this.shouue_miaosha_tv=itemView.findViewById(R.id.shouue_miaosha_tv);
            this.shouue_miaosha_tv1=itemView.findViewById(R.id.shouue_miaosha_tv1);
            this.tv_hour=itemView.findViewById(R.id.tv_hour);
            this.tv_minute=itemView.findViewById(R.id.tv_minute);
            this.tv_second=itemView.findViewById(R.id.tv_second);
            this.miaosha_rv=itemView.findViewById(R.id.miaosha_rv);
        }
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值