如何在警告对话框中放置二维码?

How can I put a QR-code in an alert dialog?

我正在尝试将二维码放入警告框中。我正在使用 zxing 库创建 QR 码,因此 QR 将首先生成为位图。这里我的问题是我只能将它设置为图标,但找不到合适的方法设置为图像。

这是我尝试过的:

 btn.setOnClickListener(new View.OnClickListener() {
        Drawable d;

        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            String text = et.getText().toString();
            MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
            try {
                BitMatrix bitMatrix = multiFormatWriter.encode(text, BarcodeFormat.QR_CODE, 200, 200);
                qr = bitMatrix.hashCode();
                BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
                final Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
                bit = bitmap;
                d = new BitmapDrawable(getResources(), bit);
                iv.setImageBitmap(bitmap);
                builder.setTitle("hi");
                builder.setIcon(d);
                builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "Yes button Clicked", Toast.LENGTH_LONG).show();
                        Log.i("Code2care ", "Yes button Clicked!");
                        dialog.dismiss();
                    }
                });
                builder.setView(iv).create().show();
                //builder.show();
            } catch (WriterException e) {
                e.printStackTrace();
            }
        }
    });

所以我得到一个

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first"

builder.setView(iv).create().show();

当我使用在网络上找到的解决方案时,即向对话框添加图像视图。

任何帮助都会有用,在此先感谢。

错误日志非常清楚,iv 视图已添加到另一个 ViewGroup。要解决它,您应该创建一个新的 ImageView 实例而不是使用 iv.