Ниже приведен код, если мой класс, в который я извлекаю данные из firebase в HashMap, затем я сохраняю эти данные в arraylist и преобразовываю данные списка массивов в строку, разделенную запятыми, но это не работает, как я ожидаю. Ниже приведенснимок экрана с моей базой данных...
SharedPreferences sharedPreferences;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
sharedPreferences = getSharedPreferences("Pref", Context.MODE_PRIVATE);
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ArrayList<Map<String, CompanyData>> myArrList = new ArrayList<>();
Map<String, CompanyData> userData = (Map<String, CompanyData>) dataSnapshot.getValue();
myArrList.add(userData);
Log.d("data", userData.toString());
csv(myArrList);
Log.d("99", sharedPreferences.getString("generalStrings", ""));
String path =
Environment.getExternalStorageDirectory() + File.separator + "Mccia";
// Create the folder.
File folder = new File(path);
folder.mkdirs();
// Create the file.
File file = new File(folder, "config.csv");
try {
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(sharedPreferences.getString("generalStrings", ""));
myOutWriter.close();
fOut.flush();
fOut.close();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
ниже мой метод для преобразования списка данных в строку
private ArrayList<Map<String, CompanyData>> csv(ArrayList<Map<String, CompanyData>> mapArrayList) {
ArrayList<Map<String, CompanyData>> g = mapArrayList;
SharedPreferences.Editor editor = sharedPreferences.edit();
StringBuilder st = new StringBuilder();
for (Map<String, CompanyData> item : g) {
st.append(item);
}
if (!g.isEmpty()) {
editor.putString("generalStrings", st.toString().substring(0, st.toString().length() - 1));
editor.apply();
} else {
editor.putString("generalStrings", " ");
editor.apply();
}
return g;
}
Пожалуйста, помогите мне или дайте мне некоторую идею, каксделай это.У меня есть библиотека openCsv и superCSV, но она мне не помогла.