鍍金池/ 問答/Android  Linux/ 為啥我寫了點(diǎn)擊事件在點(diǎn)擊 確定,取消時(shí)沒有顯示相應(yīng)的結(jié)果

為啥我寫了點(diǎn)擊事件在點(diǎn)擊 確定,取消時(shí)沒有顯示相應(yīng)的結(jié)果

沒有隱藏我的彈窗或者顯示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可以用了^-^。還是中文容易懂。
        //可是那個(gè)布局的東西現(xiàn)在還是空的摸不著頭腦
        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();

            }
        });


    }
}

圖片描述

回答
編輯回答
擱淺

有點(diǎn)疑惑,為什么你代碼里面有兩處為 btnConfirmbtnCancel 綁定點(diǎn)擊事件?

2018年1月15日 02:59