我是 android 的新手,我正在开发一个 android 项目,我想将空格插入整数。我试过用我的方式编码,但它没有显示我想要的。
我的代码
String first = "12 ";
Integer id = 1234;
String new id = String.format("%04d ", id);
btnGenerate.setOnClickListener(view -> {
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
BitMatrix bitMatrix = multiFormatWriter.encode(first + newid, BarcodeFormat.QR_CODE,400,400);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
qrcodeIv.setImageBitmap(bitmap);
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
manager.hideSoftInputFromWindow(minNp.getApplicationWindowToken(), 0);
} catch (WriterException e) {
e.printStackTrace();
}
});
结果:
扫描后显示二维码图片:12 1234
我期待什么:12 00 00 12 34
我是Gulshan Negi。 嗯,我在谷歌上搜索了一下,我发现你应该使用更新的代码: 这是源代码:
String first = "12 ";
Integer id = 1234;
String paddedId = String.format("%08d", id); // pad with leading zeros
StringBuilder spacedId = new StringBuilder();
for (int i = 0; i < paddedId.length(); i += 2) {
spacedId.append(paddedId.substring(i, i + 2)).append(" "); // insert space between every two digits
}
String newId = spacedId.toString().trim(); // remove trailing space
btnGenerate.setOnClickListener(view -> {
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
BitMatrix bitMatrix = multiFormatWriter.encode(first + newId, BarcodeFormat.QR_CODE, 400, 400);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
qrcodeIv.setImageBitmap(bitmap);
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
manager.hideSoftInputFromWindow(minNp.getApplicationWindowToken(), 0);
} catch (WriterException e) {
e.printStackTrace();
}
});
希望对你有帮助。 谢谢