Android 如何在警报对话框中输入二维码?

Android 如何在警报对话框中输入二维码?,android,android-alertdialog,Android,Android Alertdialog,我正在尝试将二维码放入警报框中。我正在使用zxing库创建一个二维码,因此,该二维码将首先作为位图生成。这里我的问题是,我只能将其设置为图标,但找不到合适的方式将其设置为图像 以下是我尝试过的: btn.setOnClickListener(new View.OnClickListener() { Drawable d; @Override public void onClick(View v) { AlertDialo

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

以下是我尝试过的:

 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: 指定的子级已具有父级。您必须调用removeView() “先看孩子的父母”

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

当我使用web中的解决方案时,即向对话框添加图像视图


任何帮助都会很有用,提前谢谢。

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

谢谢你的帮助,但我已经尝试过了,因为它不起作用。如果你知道其他的话er方法请让我知道。会有帮助是的,应用程序正在崩溃,显示的异常与我在日志中的问题中提到的相同。请保存您编辑的代码。如果您更改代码以创建新的
ImageView
实例,而不是使用现有的实例,则无法获得相同的异常。