[英]Error with E/RecyclerView: No adapter attached; skipping layout
I want to get a list of registered users in UserFragment, actually here is my code, but when I go to the "Users" tab I get an error: E/RecyclerView: No adapter attached;
我想获取 UserFragment 中注册用户的列表,实际上这是我的代码,但是当我转到“用户”选项卡时,出现错误: E/RecyclerView:没有附加适配器; skipping layout
跳过布局
UsersFragment.java用户片段.java
public class UsersFragment extends Fragment {
RecyclerView recyclerView;
AdapterUsers adapterUsers;
List<ModelUser> userList;
FirebaseAuth firebaseAuth;
public UsersFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_users, container, false);
firebaseAuth = FirebaseAuth.getInstance();
recyclerView = view.findViewById(R.id.users_recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
userList = new ArrayList<>();
getAllUsers();
return view;
}
private void getAllUsers() {
final FirebaseUser fUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
userList.clear();
for (DataSnapshot ds: dataSnapshot.getChildren()){
ModelUser modelUser = ds.getValue(ModelUser.class);
if (!modelUser.getUid().equals(fUser.getUid())){
userList.add(modelUser);
}
adapterUsers = new AdapterUsers(getActivity(), userList);
recyclerView.setAdapter(adapterUsers);
}
}
what am I doing wrong?
我究竟做错了什么?
Do this part outside the for
loop after the users list has been built:构建用户列表后,在
for
循环之外执行此部分:
adapterUsers = new AdapterUsers(getActivity(), userList);
recyclerView.setAdapter(adapterUsers);
Or alternatively, in your onCreate
, you can set the adapter of the recycler view with the empty userList
, then at the end of your getAllUsers()
function, and update the new userList
in your adapterUsers
and then call notifyDataSetChanged()
或者,在您的
onCreate
,您可以使用空的userList
设置回收器视图的适配器,然后在getAllUsers()
函数的末尾,并在您的adapterUsers
更新新的userList
,然后调用notifyDataSetChanged()
从onActivityCreated()
而不是onCreateView()
调用方法getAllUsers()
,它应该适用于您的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.