我一直在尝试检查RecyclerView是否为空,我无法使其正常工作。我尝试使用getitemcount()方法,但它始终返回null。使用Firebase节点(如果存在)检查代码是否为空的代码实现。但是,我想通过Recyclerview检查。代码的最后一部分包含getitemcount()方法,该方法不起作用,并且始终提供null。
private void loadFriendRequestList() {
Query query = FirebaseDatabase.getInstance().getReference().child(Commonx.USER_INFORMATION)
.child(Commonx.loggedUser.getUid())
.child(Commonx.FRIEND_REQUEST);
FirebaseRecyclerOptions<User> options = new FirebaseRecyclerOptions.Builder<User>()
.setQuery(query,User.class)
.build();
adapter = new FirebaseRecyclerAdapter<User, FriendRequestViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull FriendRequestViewHolder friendRequestViewHolder, int i, @NonNull final User user) {
friendRequestViewHolder.txt_user_email.setText(user.getEmail());
friendRequestViewHolder.btn_accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
friendRequestViewHolder.btn_decline.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
@NonNull
@Override
public FriendRequestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.layout_friend_request,parent,false);
return new FriendRequestViewHolder(itemView);
}
@Override
public int getItemCount() {
return super.getItemCount();
}
};
adapter.startListening();
recycler_all_user.setAdapter(adapter);
if(adapter.getItemCount()==0)
Snackbar.make(getWindow().getDecorView().getRootView(), "No new friend request", Snackbar.LENGTH_INDEFINITE).show();
}
用此替换您的getItemCount()
@Override
public int getItemCount() {
return options.getSnapshots().size()
}