为啥我写了点击事件在点击 确定,取消时没有显示相应的结果

没有隐藏我的弹窗或者显示Toast

public void showPopwindow() {
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.popwindow_add_product, null);

    final PopupWindow window = new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
    window.setFocusable(true);
    window.setTouchable(true);
    window.setOutsideTouchable(true);
    window.setBackgroundDrawable(new ColorDrawable());

    window.showAtLocation(view, Gravity.BOTTOM, 0, 0);

    ViewHolder holder = new ViewHolder(view);
    holder.setData(goods_bean, window);

    ivPopImg = (ImageView) view.findViewById(R.id.iv_pop_img);
    tvPopInfo = (TextView) view.findViewById(R.id.tv_pop_info);
    numberAddSubView = (NumberAddSubView) view.findViewById(R.id.number_add_sub_view);
    btnCancel = (Button) view.findViewById(R.id.btn_cancel);
    btnComfirm = (Button) view.findViewById(R.id.btn_comfirm);
    tvPopPrice = (TextView) view.findViewById(R.id.tv_pop_price);

    btnCancel.setOnClickListener(this);
    btnComfirm.setOnClickListener(this);
}

class ViewHolder extends RecyclerView.ViewHolder {
    public Context mContext;


    public ViewHolder(View view) {
        super(view);
        ivPopImg = (ImageView) view.findViewById(R.id.iv_pop_img);
        tvPopInfo = (TextView) view.findViewById(R.id.tv_pop_info);
        numberAddSubView = (NumberAddSubView) view.findViewById(R.id.number_add_sub_view);
        btnCancel = (Button) view.findViewById(R.id.btn_cancel);
        btnComfirm = (Button) view.findViewById(R.id.btn_comfirm);
        tvPopPrice = (TextView) view.findViewById(R.id.tv_pop_price);
        //查百度查到的,很开心。mContext可以用了^-^。还是中文容易懂。
        //可是那个布局的东西现在还是空的摸不着头脑
        mContext = GoodsInfoActivity.this;
    }


    public void setData(final GoodsBean goodsBean, final PopupWindow window) {

        Glide.with(mContext)
                .load(Constants.Base_URl_IMAGE + goodsBean.getFigure())
                .into(ivPopImg);
        tvPopInfo.setText(goodsBean.getName());
        tvPopPrice.setText("¥" + goodsBean.getCover_price());

        numberAddSubView.setValue(goodsBean.getNumber());

        numberAddSubView.setOnNumberChangeListener(new NumberAddSubView.OnNumberChangeListener() {
            @Override
            public void addNumber(View view, int value) {
                goodsBean.setNumber(value);
            }

            @Override
            public void subNumber(View view, int value) {
                goodsBean.setNumber(value);
            }
        });

        btnComfirm.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                    cartProvider.addData(goodsBean);
                    window.dismiss();
                    Toast.makeText(GoodsInfoActivity.this, "加入购物车", Toast.LENGTH_SHORT).show();

            }
        });

        btnCancel.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                    cartProvider.addData(goodsBean);
                    window.dismiss();
                    Toast.makeText(GoodsInfoActivity.this, "取消加入购物车", Toast.LENGTH_SHORT).show();

            }
        });


    }
}

图片描述

阅读 2k
1 个回答

有点疑惑,为什么你代码里面有两处为 btnConfirmbtnCancel 绑定点击事件?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题