Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FirebaseRecyclerAdapter不';t覆盖数据已更改_Java_Android_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

Java FirebaseRecyclerAdapter不';t覆盖数据已更改

Java FirebaseRecyclerAdapter不';t覆盖数据已更改,java,android,firebase,firebase-realtime-database,firebaseui,Java,Android,Firebase,Firebase Realtime Database,Firebaseui,如果我的数据库仍在加载,则显示加载对话框。这就是我想让我的聊天应用程序工作的原因。我发现我的问题可以通过在我的FirebaseRecyclerAdapter中重写onDataChanged()来解决,如下代码所示 new FirebaseRecyclerAdapter(...) { @Override protected void populateViewHolder(...) {...} @Override protected void onDataChanged() { } };

如果我的数据库仍在加载,则显示加载对话框。这就是我想让我的聊天应用程序工作的原因。我发现我的问题可以通过在我的
FirebaseRecyclerAdapter
中重写
onDataChanged()
来解决,如下代码所示

new FirebaseRecyclerAdapter(...) {

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

@Override
protected void onDataChanged() {

  }

};
但问题是我无法将
onDataChanged()
覆盖到我的适配器。 我如何解决这个问题?请看下面我的截图

更新: 这是与我的问题相关的全部代码(不需要发布其他代码)

接二连三 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
,有关更多信息,请查看以下指南:


向我们展示您的全部代码(适配器)谢谢@WaleedAsim先生。请看我上面更新的帖子。谢谢你的回答。当我更改firebaseui的版本时,其他依赖项将变为红色。提示说
所有gms/firebase库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本11.6.2、11.0.4。示例包括com.google.android.gms:play services basic:11.6.2和com.google.android.gms:play services ads:11.0.4
让我先解决这个问题,然后我会接受你的正确答案。:-)最后确认你的答案是正确的。。谢谢你的帮助,@Peter Haddad先生。@basaya没问题,编码快乐!
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;
    }

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