FirebaseRecyclerAdapter不覆盖onDataChanged

如果我的数据库仍在加载,则显示加载对话框。那就是我想让我的chatapp起作用。我发现我的问题,通过以下FirebaseRecyclerAdapter不覆盖onDataChanged

new FirebaseRecyclerAdapter(...) { 

@Override

protected void populateViewHolder(...) {...}

@Override

protected void onDataChanged() {

}

};

在我FirebaseRecyclerAdapter覆盖onDataChanged()这样的代码解决,但问题是我不能覆盖onDataChanged()我的适配器。 我该如何解决这个问题?请参阅下面的屏幕截图。

更新: 这是我与我的问题,整个代码(其他代码是没有必要发布)。

public void btn_discussion() { 

FRRA = new FirebaseRecyclerAdapter<Message, MessageViewHolder>(

Message.class,

R.layout.discussion_q_and_answer,

ActivityDiscussion.MessageViewHolder.class,

MyDatabase

) {

@Override

protected void populateViewHolder(ActivityDiscussion.MessageViewHolder viewHolder, Message model, int position) {

viewHolder.setContent(model.getContent());

viewHolder.setUsername(model.getUsername());

viewHolder.setTime(myConstructor.LongToDate(model.getTime()));

}

@Override

protected void onDataChanged() {

//Write something here

}

};

msgList.setAdapter(FRRA);

msgList.smoothScrollToPosition(FRRA.getItemCount());

}

RecyclerView.ViewHolder

public static class MessageViewHolder extends RecyclerView.ViewHolder { 

View view;

public MessageViewHolder(View itemView) {

super(itemView);

this.view = itemView;

}

private void setContent(String content) {

TextView msg = view.findViewById(R.id.comment);

msg.setText(content);

}

private void setUsername(String username) {

TextView msg = view.findViewById(R.id.tv_user);

msg.setText(username);

}

private void setTime(String time) {

TextView msg = view.findViewById(R.id.tv_time);

msg.setText(time);

}

}

getter和setter Message.java

public class Message { 

private String content;

private String Username;

private String time;

public Message() {}

public Message(String mcontent, String musername, String mtime) {

this.content = mcontent;

this.Username = musername;

this.time = mtime;

}

public String getContent() {

return content;

}

public void setContent(String message) {

this.content = message;

}

public String getUsername() {

return Username;

}

public void setUsername(String Username) {

this.Username = Username;

}

public String getTime() {

return time;

}

public void setTime(String time) {

this.time = time;

}

}

回答:

您正在使用的firebaseui和旧版本onDataChanged较旧版本不在覆盖方法中。您可以通过点击ALT + INS来查看属于此类的所有重写方法。

您需要使用最新的一个是这样的:

implementation 'com.firebaseui:firebase-ui-database:3.1.1' 

,然后你可以使用onDataChanged等方法。当你升级,你将不得不使用FirebaseRecyclerOptions也,以获得更多信息点击此处查看该指南:

FirebaseUI for Realtime Database

以上是 FirebaseRecyclerAdapter不覆盖onDataChanged 的全部内容, 来源链接: utcz.com/qa/261008.html

回到顶部