android - 如何在警报对话框中放置二维码?

标签 android android-alertdialog

我正在尝试将二维码放入警报框中。我正在使用 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();

当我使用在网络中找到的解决方案时,即将 ImageView 添加到对话框中。

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

最佳答案

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

关于android - 如何在警报对话框中放置二维码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64986358/

相关文章:

如果在 WebChromeClient#onCreateWindow 的回调中创建 webview,则 Android WebView addJavascriptInterface 不起作用

android - 尝试第二次打开警报对话框时出现 FatalException

java - 如何使用 AlertDialog 提示输入 PIN

android - Exoplayer 无限缓冲状态

android - Android应用错误:未找到Kotlin类,但仅在Release apk上

java - 如何创建具有自动平移和缩放功能的 Android ImageView?

java - 警报对话框不显示 strings.xml 中定义的 HTML

java - 无法在自定义 AlertDialog.Builder 上调用 Dismiss()

android - 为 AlertDialog 的进入和退出设置动画

Java - Android Studio MP3 使用