I am retrieving all the users from firebase database and displaying them in a recyclerView. It displays the town,username and image. I am able to retrieve but it only displays one user instead of all the users.The database has many users but only one is being displayed.Any suggestions will really help.
Here is the bit that retrieves the users
public void showUsersList() {
mdatabaseRef = FirebaseDatabase.getInstance ().getReference ( "Users" );
mdatabaseRef.addValueEventListener ( new ValueEventListener () {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mcontacts.clear ();
for (DataSnapshot postSnapshot : dataSnapshot.getChildren ()) {
Contacts contactsz = dataSnapshot1.getValue (Contacts.class);
mcontacts.add ( contactsz );
}
mAdapter = new UsersAdapter ( getApplicationContext () , mcontacts );
recyclerView.setAdapter ( mAdapter );
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText ( FindFriendsActivity.this , " " , Toast.LENGTH_SHORT ).show ();
}
}
}
This the Adapter class
private Context mcontext;
private List<Contacts> mcontacts;
public UsersAdapter(Context context, List<Contacts> contacts){
mcontext = context;
mcontacts = contacts;
}
@NonNull
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup , int i) {
View v = LayoutInflater.from ( mcontext ).inflate ( R.layout.users_display_layout, viewGroup, false );
return new UsersViewHolder ( v );
}
@Override
public void onBindViewHolder(@NonNull UsersViewHolder usersViewHolder , int i) {
Contacts contactsCurrent = mcontacts.get ( i );
usersViewHolder.nameOfUser.setText ( contactsCurrent.getName () );
usersViewHolder.nameOfTown.setText ( contactsCurrent.getTownname () );
Picasso.get ().load ( contactsCurrent.getImage () ).into ( usersViewHolder.usersImage );
}
@Override
public int getItemCount() {
return mcontacts.size ();
}
public class UsersViewHolder extends RecyclerView.ViewHolder{
public TextView nameOfUser;
public TextView nameOfTown;
public CircleImageView usersImage;
public UsersViewHolder(@NonNull View itemView) {
super ( itemView );
nameOfUser = itemView.findViewById ( R.id.user_profile_name );
nameOfTown = itemView.findViewById ( R.id.user_town_name );
usersImage = itemView.findViewById ( R.id.users_profile_image );
}
}
}
`````````````````````````````````````````````````````````````````
Here is the Contacts class
public class Contacts {
public String Name,townname,image;
public Contacts(){
}
public Contacts(String name , String townname , String image) {
Name = name;
this.townname = townname;
this.image = image;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getTownname() {
return townname;
}
public void setTownname(String townname) {
this.townname = townname;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
[1]: https://i.stack.imgur.com/dFD6z.jpg