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
Libérer: 2024-12-26 02:35:09
original
851 Les gens l'ont consulté

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()));
    }
};
Copier après la connexion

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();
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal