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