我正在this之后开发android聊天应用程序我正在检索整个朋友列表,然后根据他们的用户ID从用户数据(即用户名,用户图像和用户状态)中检索用户的数据数据库如下所示。
和
那么现在主要的问题是什么,主要的问题是以下代码:
{{1}}
它给了我一个recyclerView结果 其中仅显示最后一个元素,如图所示
我用谷歌搜索了它,还搜索了Stackover流,但最近3天找不到解决方案。 会问一个类似的问题,但是我无法解决here的问题 请帮助,不要拒绝我的问题 感谢您的帮助
答案 0 :(得分:1)
addValueEventListener
方法中的 onBindViewHolder
是一个非常糟糕的主意。您可以在Fragment中创建一个用户列表,然后将该列表传递给Adapter。
答案 1 :(得分:1)
之所以发生这种情况,是因为onBindViewHolder()
方法的调用次数与数据库中的条目数一样多。因此,在这种情况下,此方法内部的所有内容也会被触发。这意味着您将在每个onBindViewHolder()
方法调用上附加一个侦听器。不需要这样做。您可以直接从model
对象中获取用户名和所有其他属性,该对象作为参数传递给此方法,如下所示:
String UserName = model.getUserName();
String UserStatus = model.getUserStatus();
//And so on for the other properties.