Donc, j'ai le problème de mettre les valeurs de la Firestore à ma liste de liste. J'ai regardé des tutoriels sur YouTube pour savoir comment cela fonctionne, mais malheureusement, rien ne fonctionne.
J'ai essayé quelque chose que rien ne fonctionne. P>
public class MainActivity extends AppCompatActivity { ArrayList<String> doctors =new ArrayList<String>(); ListView txt; private FirebaseFirestore db = FirebaseFirestore.getInstance(); private CollectionReference noteRef = db.collection("Doctors"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); db.collection("Doctors") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { doctors.add(document.getId()); } } else { Toast.makeText(MainActivity.this,"Failed", Toast.LENGTH_LONG).show(); } } }); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, doctors); txt = (ListView)findViewById(R.id.gg1); txt.setAdapter(arrayAdapter); } }
3 Réponses :
Essayez de déplacer:
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, doctors); txt.setAdapter(arrayAdapter)
Vérifiez ce code édité
public class MainActivity extends AppCompatActivity { ArrayList<String> doctors =new ArrayList<String>(); ListView txt; private FirebaseFirestore db = FirebaseFirestore.getInstance(); private CollectionReference noteRef = db.collection("Doctors"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, doctors); txt = (ListView)findViewById(R.id.gg1); db.collection("Doctors") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { doctors.add(document.getId()); } txt.setAdapter(arrayAdapter); } else { Toast.makeText(MainActivity.this,"Failed", Toast.LENGTH_LONG).show(); } } }); } }
Votre code a l'air bien, mais chaque fois que vous apportez quelques modifications, vous devez également informer l'adaptateur sur ces changements. Il est bon que vous définissais l'adaptateur en dehors du rappel et de l'intérieur, avertir simplement l'adaptateur sur les modifications à l'aide de la ligne de code suivante:
private ArrayAdapter<String> arrayAdapter;
Salut Ezekiel! Avez-vous essayé ma solution ci-dessus, ça marche? Si vous pensez que ma réponse vous a aidé, veuillez envisager de l'accepter en cliquant sur la coche (✔) sur le côté gauche sous les flèches de vote. Devrait changer la couleur en vert. J'apprécierais. Merci!
Quelles erreurs obtenez-vous?
Aucun, il ne s'agit que d'afficher sur la vue de ma liste, mais chaque fois que je spécifie un tableau spécifique comme chaîne [] DISP = {"Hello", "World}; ça marche.
Avez-vous essayé de mettre un breakpoint `médecins.add (document.getid ());` Pour voir si vous obtenez des données?
Essayé de l'imprimer en utilisant Toast. Il affiche les données mais lorsque j'ai essayé de le mettre dans mon arrayadapter, il ne fait rien, il est devenu une liste vide ou quelque chose, je n'ai vraiment aucune idée.
@Ezkiel Rehrasser votre question ou vous ajoutez de commentaire sur la liste qui n'affiche pas les éléments de la liste.