FirebaseListAdapter が Firebase-Ui 3.1 で個々のアイテムを表示できない
Firebase-Ui 3.1 では、特に FirebaseListAdapter に関して API にいくつかの変更が導入されています。リスト アダプターの構築に使用された元のコードは有効ではなくなったため、ListView にデータが表示されなくなりました。
この問題を解決するには、新しい要件に準拠するようにコードを更新する必要があります。
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())); } };
さらに、データを表示してメモリ リークを回避するには、データベース内の変更の監視を開始および停止することが不可欠です。これは、次のメソッドを追加することで実現できます:
@Override protected void onStart() { super.onStart(); adapter.startListening(); } @Override protected void onStop() { super.onStop(); adapter.stopListening(); }
以上がFirebaseListAdapter が Firebase-UI 3.1 で個々の項目を表示しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。