FirebaseListAdapter 无法在 Firebase-Ui 3.1 中显示单个项目
Firebase-Ui 3.1 对其 API 进行了一些更改,特别是对于 FirebaseListAdapter 。用于构造列表适配器的原始代码不再有效,导致 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中文网其他相关文章!