FirebaseListAdapter gagal memaparkan item individu dalam Firebase-Ui 3.1
Firebase-Ui 3.1 memperkenalkan beberapa perubahan pada APInya, terutamanya untuk FirebaseListAdapter . Kod asal yang digunakan untuk membina penyesuai senarai tidak lagi sah, menyebabkan ListView tidak memaparkan data.
Untuk menyelesaikan isu ini, kod perlu dikemas kini untuk mematuhi keperluan baharu:
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())); } };
Selain itu, adalah penting untuk memulakan dan berhenti mendengar perubahan dalam pangkalan data untuk memaparkan data dan mengelakkan kebocoran memori. Ini boleh dicapai dengan menambah kaedah berikut:
@Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }
Atas ialah kandungan terperinci Mengapa FirebaseListAdapter Saya Tidak Memaparkan Item Individu dalam Firebase-UI 3.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!