android - 为什么我只在片段中显示我的用户列表,当我更改片段并返回时,它不会显示用户列表
问题描述
为什么我只在片段中显示我的用户列表,当我更改片段并返回时,它不会显示用户列表。
该功能正在运行,但我不知道为什么只显示一次。
private RecyclerView recyclerView;
FirebaseUser firebaseUser;
private MessageListAdapter messageListAdapter;
private List<ChatListModel> usersList;
private List<UserModel> mUsers;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_message, container,false);
recyclerView = view.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
usersList = new ArrayList<>();
DatabaseReference reference =
FirebaseDatabase.getInstance().getReference("Chatlist").child(firebaseUser.getUid());
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
usersList.clear();
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
ChatListModel chatListModel = snapshot.getValue(ChatListModel.class);
usersList.add(chatListModel);
}
chatList();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
return view;
}
private void chatList() {
mUsers = new ArrayList<>();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mUsers.clear();
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
UserModel userModel = snapshot.getValue(UserModel.class);
for(ChatListModel chatListModel : usersList){
if(userModel.getId().equals(chatListModel.getId())){
mUsers.add(userModel);
}
}
}
messageListAdapter = new MessageListAdapter(getContext(), mUsers);
recyclerView.setAdapter(messageListAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
我从来没有遇到任何崩溃,只需更改其他片段并支持它。片段将显示空白页。
解决方案
推荐阅读
- react-native - 当键盘打开时,用手势返回不起作用反应本机
- c# - 使用 CSCore 更改特定应用的音量
- express - “在建立安全 TLS 连接之前客户端网络套接字已断开”nodemailer 中的错误
- php - 如何从 Woocommerce 的结帐审查订单表中删除运输行?
- python - Alpine Python image throw exec 用户进程导致 Raspian/Debian 工作的“没有这样的文件或目录”
- php - css 样式在某些 url 路径上中断
- javascript - 反应 useContext() 返回未定义
- python - 将网格上的人口转换为坐标,反之亦然
- javascript - 有没有办法自动为图像添加渐变?
- c# - ASP.NET 项目中的 JWT 身份验证