首页 > 解决方案 > FirebaseListAdapter 无法应用

问题描述

我尝试使用视频教程与 android 聊天,但出现错误:https ://i.stack.imgur.com/6TkD6.png

依赖:https ://i.stack.imgur.com/GUwmI.png

    private void displayAllMessages() {
    ListView listOfMessages = findViewById(R.id.list_of_messages);
    adapter= new FirebaseListAdapter<Message>(this, Message.class, R.layout.list_item, FirebaseDatabase.getInstance().getReference()) {
        @Override
        protected void populateView(View v, Message model, int position) {
            TextView mess_user, mess_time, mess_text;
            mess_user = v.findViewById(R.id.message_user);
            mess_time = v.findViewById(R.id.message_time);
            mess_text = v.findViewById(R.id.message_text);

            mess_user.setText(model.getUserName());
            mess_text.setText(model.getTextMessage());
            mess_time.setText(DateFormat.format("dd-MM-yyyy HH:mm:ss", model.getMessageTime()));
        }
    };
    listOfMessages.setAdapter(adapter);
}

请帮我弄清楚

标签: javaandroidfirebasefirebase-realtime-databasefirebaseui

解决方案


由于您使用的是新版本的 FirebaseUI,因此您需要将代码更改为以下内容:

FirebaseListOptions<Message> options =
            new FirebaseListOptions.Builder<Message>()
                    .setQuery(FirebaseDatabase.getInstance().getReference(), Message.class)
                     .setLayout(R.layout.list_item)
                    .build();
 adapter = new FirebaseListAdapter<Message>(options){
 @Override
        protected void populateView(View v, Message model, int position) {
        //...
       }

你可以在这里查看:

https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md#using-firebaseui-to-populate-a-listview

了解更多信息


推荐阅读