FirebaseListAdapter ne parvient pas à afficher des éléments individuels dans Firebase-Ui 3.1
Firebase-Ui 3.1 introduit quelques modifications dans son API, en particulier pour FirebaseListAdapter . Le code d'origine utilisé pour construire l'adaptateur de liste n'est plus valide, ce qui fait que ListView n'affiche aucune donnée.
Pour résoudre ce problème, le code doit être mis à jour pour se conformer aux nouvelles exigences :
FirebaseListOptions<ChatMessage> options = new FirebaseListOptions.Builder<ChatMessage>() .setQuery(FirebaseDatabase.getInstance().getReference("Lobbies").child(leaderID).child("Messages"), ChatMessage.class).setLayout(R.layout.message).build(); adapter = new FirebaseListAdapter<ChatMessage>(options) { @Override protected void populateView(View v, ChatMessage model, int position) { // Get references to the views of message.xml TextView messageText = v.findViewById(R.id.message_text); TextView messageUser = v.findViewById(R.id.message_user); TextView messageTime = v.findViewById(R.id.message_time); // Set their text messageText.setText(model.getMessageText()); messageUser.setText(model.getMessageUser()); // Format the date before showing it messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)", model.getMessageTime())); } };
De plus, il est essentiel de démarrer et d'arrêter l'écoute des modifications dans la base de données pour afficher les données et éviter les fuites de mémoire. Ceci peut être réalisé en ajoutant les méthodes suivantes :
@Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!