Maison >Java >javaDidacticiel >Pourquoi mon FirebaseListAdapter n'affiche-t-il pas les éléments individuels dans Firebase-UI 3.1 ?

Pourquoi mon FirebaseListAdapter n'affiche-t-il pas les éléments individuels dans Firebase-UI 3.1 ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-26 02:35:09853parcourir

Why Doesn't My FirebaseListAdapter Display Individual Items in Firebase-UI 3.1?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn