Я пытаюсь массово генерировать и сохранять коды Qrcodes с пользовательскими макетами из базы данных.
Созданный мною l oop работает, он массово сохраняет. Но проблема заключается в том, что при массовом сохранении информация, которая должна быть получена из базы данных и отображена, не отображается, отображается only qrcode. Но если я сохраняю Вручную по одному, отображается вся информация.
Сохранение вручную Массовое сохранение
Код Для сохранения макета:
@RequiresApi(api = Build.VERSION_CODES.N)
public void screen(String name) {
try {
CardView content = findViewById(R.id.massgenrate);
content.setDrawingCacheEnabled(true);
Bitmap bitmap = content.getDrawingCache();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_hh_mm_ss");
Date now = new Date();
String fileName = formatter.format(now);
File file, f;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
file = new File(Environment.getExternalStorageDirectory(), "DCIM");
if (!file.exists()) {
file.mkdirs();
}
f = new File(file.getAbsolutePath() + file.separator + name + fileName + ".png");
FileOutputStream ostream = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, ostream);
Toast.makeText(this, "done", Toast.LENGTH_SHORT).show();
ostream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
Код для l oop:
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
userinfo dbb = snapshot.getValue(userinfo.class);
// sets Text for textviews
name.setText(dbb.getFirstname() + " " + dbb.getLastname());
work.setText(dbb.getWorkplace());
occu.setText(dbb.getOccupation());
// email garbed from the db is sent to qrGenrator tp create the code.
qrGenrator(dbb.getEmail());
progressBar.setVisibility(View.INVISIBLE);
creating.setText(" ");
//sends firstname to screen function which saves the file with persons firstname
screen(dbb.getFirstname);
}
}
}