Firebase 列表适配器构造函数错误
Posted
技术标签:
【中文标题】Firebase 列表适配器构造函数错误【英文标题】:Firebase List Adapter Constructor error 【发布时间】:2018-04-24 22:23:09 【问题描述】:我创建了一个显示聊天消息的函数,我按照教程进行操作,还查看了 Firebase 列表适配器的文档,但无论我做什么,我都会收到此错误:
Error:(98, 19) error: constructor FirebaseListAdapter in class
FirebaseListAdapter<T> cannot be applied to given types;
required: FirebaseListOptions<ChatMessage>
found: Chat,Class<ChatMessage>,int,DatabaseReference
reason: actual and formal argument lists differ in length
where T is a type-variable:
T extends Object declared in class FirebaseListAdapter
这是我的代码:
private void displayChatMessage()
ListView listOfMessage = (ListView)findViewById(R.id.list_of_messages);
FirebaseRecyclerOptions<ChatMessage> options =
new FirebaseRecyclerOptions.Builder<ChatMessage>()
.setQuery(query, ChatMessage.class)
.build();
adapter = new FirebaseListAdapter<ChatMessage, Holder>(options)
@Override
protected void populateView(View v, ChatMessage model, int position)
//Get references to the views of list_item.xml
TextView messageText, messageUser, messageTime;
messageText = (TextView) v.findViewById(R.id.message_text);
messageUser = (TextView) v.findViewById(R.id.message_user);
messageTime = (TextView) v.findViewById(R.id.message_time);
messageText.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)", model.getMessageTime()));
;
listOfMessage.setAdapter(adapter);
【问题讨论】:
【参考方案1】:FirebaseUI 3.0+ 版本隐含以下内容
删除这个:
adapter = new FirebaseListAdapter<ChatMessage>(this,ChatMessage.class,R.layout.list_item,FirebaseDatabase.getInstance().getReference())
你需要添加这个:
FirebaseListOptions<ChatMessage> options =
new FirebaseListOptions.Builder<ChatMessage>()
.setQuery(query, ChatMessage.class)
.setLayout(android.R.layout.simple_list_item_1)
.build();
adapter = new FirebaseListAdapter<ChatMessage>(options)
query
是您为列表适配器示例所做的查询:
Query query = FirebaseDatabase.getInstance().getReference().child("chats");
更多信息在这里:
Using FirebaseUI to populate a ListView
【讨论】:
以上是关于Firebase 列表适配器构造函数错误的主要内容,如果未能解决你的问题,请参考以下文章
Firebase:“构造函数 Message(String, String) 未定义
使用 Firebase 登录 Twitter iOS 的 OAuthProvider 有错误的构造函数