gpt4 book ai didi

java - 为什么我的Java程序中的好友列表不显示?

转载 作者:行者123 更新时间:2023-11-30 05:06:14 25 4
gpt4 key购买 nike

好友列表 fragment

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);

//回收站 View

   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);
}

}
}

//我去哪里获取字符串数据的 friend 类

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 数据库结构图:

enter image description here

不知道是什么问题。我是 Android 新手。

最佳答案

您没有为 RecyclerView 设置适配器。

mRV.setLayoutManager(new LinearLayoutManager(getContext()); 
mRV.setAdapter(new MyAdapterRV());

您的 onStart() 方法中有一个适配器。使其成为全局即公开并在 onCreateView() 中添加行

mFriendList.setAdapter(friendsRecyclerViewAdapter);

有关回收站 View 的更多信息:在 Android 中,如果你想显示一个长列表,你可以使用回收器 View 。 RecyclerView 将膨胀(创建) subview 并管理列表的上下滚动。回收者 View 需要 4 个东西:

  1. 来自布局文件的引用
  2. 告诉它如何显示 subview 的布局管理器(您的代码使用 LinearLayoutManager,它将在垂直列表中逐项显示每个项目)
  3. 可以获取实际数据(您的好友列表)并将其分配(绑定(bind))到 RecyclerView 内的 subview 的适配器
  4. 一个 ViewHolder 类,它将存储每个 subview 的引用

关于java - 为什么我的Java程序中的好友列表不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com