FirebaseListAdapter Tidak Menolak Item Individu untuk Apl Sembang - Firebase-UI 3.1
Dalam membangunkan aplikasi sembang, isu boleh timbul apabila cuba memaparkan mesej yang diambil daripada pangkalan data Firebase dalam ListView tersuai. Ini boleh berlaku apabila mengemas kini kebergantungan, terutamanya versi perpustakaan firebase-ui kepada 3.1.0. Perkara berikut menangani punca dan menyediakan penyelesaian kepada cabaran ini.
Masalah
Selepas mengemas kini kepada Firebase-UI 3.1.0, kod yang digunakan untuk membina no FirebaseListAdapter lebih lama beroperasi seperti yang dimaksudkan. Pendekatan sebelumnya, yang bergantung pada penyesuai langsung, telah tidak digunakan lagi.
Penyelesaian
Untuk menyelesaikan isu ini, kod mesti disesuaikan untuk mematuhi keperluan baharu Firebase-UI. Ini melibatkan mencipta objek FirebaseListOptions dan menghantarnya sebagai parameter kepada pembina FirebaseListAdapter.
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())); } };
Pengurusan Kitaran Hayat Pendengar
Untuk memaparkan data dalam paparan senarai, FirebaseListAdapter menggunakan pendengar untuk memantau perubahan dalam pangkalan data Firebase. Pendengar ini mesti dimulakan dan dihentikan dalam kitaran hayat aktiviti:
@Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }
Dengan melaksanakan langkah ini, FirebaseListAdapter akan berjaya memaparkan mesej individu dalam ListView aplikasi sembang.
Atas ialah kandungan terperinci Mengapa FirebaseListAdapter Saya Tidak Menolak Mesej Sembang Individu Selepas Mengemas kini ke Firebase-UI 3.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!