RecyclerView点击事件、加载不同布局

/**
 * 浏览记录界面
 * Created by Menglinghua on 2016/1/8.
 */
public class BrowserrecordAdapter extends RecyclerView.Adapter <BrowserrecordAdapter.MyViewHoler>{
    private Context context;//上下文
    private List<BrowserBean> list;
    private List<BrowserBean> groupList;
    private static final int IS_NORMAL = 1;//主体充值、消费记录
    private static final int IS_HEADER = 2;//分组的标题
    public BrowserrecordAdapter(Context context,List<BrowserBean> list,List<BrowserBean> groupList){
        this.context = context;
        this.list = list;
        this.groupList = groupList;
    }

    //通过viewType来加载不同的布局,viewType是从getItemViewType得到的
    @Override
    public MyViewHoler onCreateViewHolder(ViewGroup parent, int viewType) {
        MyViewHoler viewHoler = null;
        if(viewType==IS_HEADER){
            View view  = LayoutInflater.from(context).inflate(R.layout.browser_record_group_item,parent,false);
            viewHoler = new MyViewHoler(view,IS_HEADER);


            return viewHoler;
        }else if(viewType ==IS_NORMAL){
            View view  = LayoutInflater.from(context).inflate(R.layout.browser_record_item,parent,false);
            viewHoler = new MyViewHoler(view,IS_NORMAL);
            return viewHoler;
        }
        return null;
    }
    //绑定数据,也是根据类型加载

    @Override
    public void onBindViewHolder(MyViewHoler holder, int position) {
        if(groupList.contains(list.get(position)) && holder.viewType==IS_HEADER){



           holder.tv_browser_header.setText(list.get(position).getCreatetime());


        }else if(holder.viewType==IS_NORMAL){
            final BrowserBean browserBean = list.get(position);
            holder.tv_browser_name_item.setText(browserBean.getGoodsname());
            holder.tv_browser_price_itme.setText(browserBean.getGoodsprice());
            //根据imgUrl设置图片

            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ToastUtil.showToast(context,"被点击了");
                    //点击进入商品详情界面
                    Intent intent = new Intent(context, CommodityDetailActivity_.class);
                    intent.putExtra(UIHelper.INTENT_COMMODITY_ID_KEY,browserBean.getId());
                    context.startActivity(intent);
                }
            });
            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    ToastUtil.showToast(context, "被长安了");
                    //长按弹出提示窗,是否确定被删除
                   /* DBHelper.getInstance(context).deleteBrowserBeanByKey(browserBean.getId());
                    list.remove(browserBean.getId());*/
                    AlertDialog.Builder builder = new AlertDialog.Builder(context);
                    final AlertDialog dialog = builder.create();
                    //dialog.setMessage("确定要清楚历史记录吗?");
                    View view =LayoutInflater.from(context).inflate(R.layout.browser_alert_view, null);
                    Button btn_browser_cancel = (Button) view.findViewById(R.id.btn_browser_cancel);
                    btn_browser_cancel.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    Button btn_browser_sure = (Button) view.findViewById(R.id.btn_browser_sure);
                    btn_browser_sure.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            DBHelper.getInstance(context).deleteBrowserBeanByKey(browserBean.getId());
                            //Log.e("--","---b--"+browserList.size());
                            BrowserrecordAdapter.this.notifyDataSetChanged();
                            dialog.dismiss();
                        }
                    });
                    dialog.setView(view);
                    dialog.show();
                    return true;//true:不再执行setOnClickListener
                }
            });
        }
    }

    @Override
    public int getItemCount() {
        return list.size()!=0?list.size():0;
    }
    /**
     * item布局类型
     * @param position
     * @return
     */
    @Override
    public int getItemViewType(int position) {
        if (groupList.contains(list.get(position))) {
            return IS_HEADER;//分组标题
        } else {
            return IS_NORMAL;//充值、消费记录
        }
    }


    public class MyViewHoler extends RecyclerView.ViewHolder{
        private TextView tv_browser_header;//分组的标题
        private TextView tv_browser_name_item;//充值、消费的金额
        private TextView tv_browser_price_itme;//充值、消费的时间
        private ImageView iv_browser_item;
        public int viewType;
        public MyViewHoler(View itemView,int viewType) {
            super(itemView);
            this.viewType = viewType;
            if (viewType==IS_HEADER){
                tv_browser_header = (TextView) itemView.findViewById(R.id.tv_browser_header_item);
            }else if(viewType==IS_NORMAL){
                tv_browser_name_item = (TextView) itemView.findViewById(R.id.tv_browser_name_item);
                tv_browser_price_itme = (TextView) itemView.findViewById(R.id.tv_browser_price_itme);
                iv_browser_item = (ImageView) itemView.findViewById(R.id.iv_browser_item);
            }
        }
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值