java - 为什么我的 Java 程序中的好友列表不显示?
问题描述
好友列表片段
public class FriendsFragment extends Fragment {
private RecyclerView mFriendList;
private DatabaseReference mFriendsDatabase;
private FirebaseAuth mAuth;
private String mCurrent_user_id;
private View mMainView;
private String user_id;
public FriendsFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mMainView = inflater.inflate(R.layout.fragment_friends, container, false);
mFriendList = (RecyclerView) mMainView.findViewById(R.id.listfriends);
mCurrent_user_id = mAuth.getCurrentUser().getUid();
//小路
mFriendsDatabase = FirebaseDatabase.getInstance().getReference().child("Friends").child(mCurrent_user_id);
// 回收站视图
mFriendList.setHasFixedSize(true);
mFriendList.setLayoutManager(new LinearLayoutManager(getContext()));
// 返回主视图
return mMainView;
}
// 开始时
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerOptions<Friends> options =
new FirebaseRecyclerOptions.Builder<Friends>()
.setQuery(mFriendsDatabase,Friends.class)
.setLifecycleOwner(this)
.build();
FirebaseRecyclerAdapter<Friends, FriendsViewHolder> friendsRecyclerViewAdapter = new FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(options){
@NonNull
@Override
public FriendsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new FriendsViewHolder(LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.friendlist, viewGroup, false));
}
@Override
protected void onBindViewHolder(@NonNull FriendsViewHolder holder, int position, @NonNull Friends model) {
holder.setDate(model.getDate());
//Will get data from user choosen
//final String user_id = getRef(position).getKey();
}
};
mFriendList.setAdapter(friendsRecyclerViewAdapter);
}
// onStart方法结束
public static class FriendsViewHolder extends RecyclerView.ViewHolder{
View mView;
public FriendsViewHolder(@NonNull View itemView) {
super(itemView);
mView = itemView;
}
public void setDate(String date){
TextView dateOfFriend=(TextView) mView.findViewById(R.id.friend_single_status);
dateOfFriend.setText(date);
}
}
}
// 我去的好友类获取字符串数据
public class Friends {
public String date;
public Friends(){
}
public Friends(String date) {
this.date = date;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
Firebase 数据库结构图:
我不知道是什么问题。我是安卓新手。
解决方案
您没有为 RecyclerView 设置适配器。
mRV.setLayoutManager(new LinearLayoutManager(getContext());
mRV.setAdapter(new MyAdapterRV());
您的 onStart() 方法中有一个适配器。使其成为全局即公共并在 onCreateView() 中添加该行
mFriendList.setAdapter(friendsRecyclerViewAdapter);
更多关于 Recycler Views: 在 Android 中,如果你想显示一个长列表,你可以使用 recycler view。RecyclerView 将膨胀(创建)子视图并管理列表的上下滚动。回收站视图需要 4 件事:
- 来自布局文件的引用
- 一个布局管理器,告诉它如何显示子视图(您的代码使用一个 LinearLayoutManager,它将在垂直列表中显示每个项目的下方)
- 一个适配器,可以获取实际数据(您的朋友列表)并将其分配(绑定)到 RecyclerView 内的子视图
- 一个 ViewHolder 类,它将存储每个子视图的引用
推荐阅读
- npm - NODE_ENV 持有奇怪的价值
- java - What is the efficient way of get members for specific user in LDAP Query?
- javascript - 在功能组件的初始渲染时将变量添加到存储区
- r - How to extract or calcualte special cause variations shown in a qcc chart (xmr, spc)
- c - 如何初始化外部 RAM 中的变量?
- c# - Data visualization from database
- csom - How to fix Error 500 using CSOM before login on sharepoint front-end
- android - XML/android:如何为 RecyclerView 项目制作白色下划线?
- azure-active-directory - Azure Active Directory: How to check device membership?
- html - 将水平表格转换为垂直表格