问题描述
我正在使用Firebase实施创建应用。现在,我不得不使用recyclerView显示数据列表。使用我的代码后,我的活动为空,Logcat中没有任何错误,但是当关闭移动电源按钮并再次启动时,数据将显示在recycleView上。当我进行另一项活动并打开此活动然后再次显示空白页面时,也是一件事情。我需要某人的帮助:(
这是我的片段:
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_message,container,false);
// Initialize
recyclerView = view.findViewById(R.id.recycleView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new linearlayoutmanager(getContext()));
list = new ArrayList<>();
// For retrieve Chat User ID
databaseReference = FirebaseDatabase.getInstance().getReference().child("Chat");
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
list.clear();
for (DataSnapshot ds : snapshot.getChildren()) {
receiveID = ds.getKey();
// Restore Data on model class name UserDataInfo
databaseReference = FirebaseDatabase.getInstance().getReference().child("UsersData").child(receiveID);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
String userName = String.valueOf(snapshot.child("userName").getValue());
String userNumber = String.valueOf(snapshot.child("userPhone").getValue());
String userType = String.valueOf(snapshot.child("userType").getValue());
String userImage = String.valueOf(snapshot.child("userName").getValue());
info = new UserDataInfo(userImage,userType,userNumber,userName,receiveID);
list.add(info);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
// End
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
adapter = new messagelistadapter(list,getContext());
recyclerView.setAdapter(adapter);
}
我的适配器:
public class messagelistadapter extends RecyclerView.Adapter<messagelistadapter.ViewHolder> {
List<UserDataInfo> infoList;
Context context;
public messagelistadapter(List<UserDataInfo> infoList,Context context) {
this.infoList = infoList;
this.context = context;
}
@NonNull
@Override
public messagelistadapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_list_show_admin,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull messagelistadapter.ViewHolder holder,int position) {
final UserDataInfo userDataInfo = infoList.get(position);
holder.Name.setText(userDataInfo.getUserName());
holder.Number.setText(userDataInfo.getUserPhone());
holder.whichType.setText(userDataInfo.getUserType());
holder.linearLayout.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context,"ID: " + userDataInfo.getReceiveID(),Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return infoList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
ImageView Image;
TextView Name,Number,whichType;
LinearLayout linearLayout;
public ViewHolder(@NonNull View itemView) {
super(itemView);
Image = itemView.findViewById(R.id.UserImage);
Name = itemView.findViewById(R.id.Name);
Number = itemView.findViewById(R.id.Number);
whichType = itemView.findViewById(R.id.WhichType);
linearLayout = itemView.findViewById(R.id.Linear_layout);
}
}
}
我的Firebase数据库设置:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)