У меня есть база данных Firestore, в которую я корректно извлекаю данные, потому что я печатаю размер массива, и он правильный, но мне не удается отобразить его в виде списка. Я твердо верю, что это как-то связано с моим адаптером.
При добавлении метода NotifyDataSetChanged () происходит сбой приложения.
Мой код:
public class AdminProducts extends Activity {
private static final String TAG = "AdminProducts";
public ListView myListView;
FirebaseFirestore db;
final ArrayList<String> nameData = new ArrayList<>();
ArrayAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_products);
myListView = (ListView)findViewById(R.id.myProductList);
db = FirebaseFirestore.getInstance();
myAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, nameData);
myListView.setAdapter(myAdapter);
CollectionReference collectionReference = db.collection("myDB");
collectionReference.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if(!queryDocumentSnapshots.isEmpty()){
List<DocumentSnapshot> list = queryDocumentSnapshots.getDocuments();
String name = "xx";
for(DocumentSnapshot d : list){
FirestoreProducts firestoreProducts = d.toObject(FirestoreProducts.class);
name = firestoreProducts.getName();
nameData.add(name);
}
Toast.makeText(AdminProducts.this, name + nameData.size(), Toast.LENGTH_SHORT).show();
((ArrayAdapter)myListView.getAdapter()).notifyDataSetChanged();
}
}
});
}
}