FirebaseRecyclerAdapter 不显示任何内容

时间:2021-06-03 11:28:35

标签: android android-fragments firebase-realtime-database firebase-authentication firebaseui

我使用此代码但对我不起作用,也没有出现任何内容。 我尝试了在互联网和 Youtoube 上找到的所有内容,但没有任何教程有帮助。无法显示用户。我希望我能在这里找到答案。 我认为主要问题在于 onbindviewholder

有用户活动

public class UsersActivity extends AppCompatActivity {

private Toolbar mToolbar;
private RecyclerView mUsersList;
private DatabaseReference query, query2;
FirebaseRecyclerAdapter<Users, UsersVIewHolder> firebaseRecyclerAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_users);

    mToolbar = (Toolbar) findViewById(R.id.users_toolbar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setTitle("All users");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    query = FirebaseDatabase.getInstance().getReference().child("Users");
    //query2 = FirebaseDatabase.getInstance().getReference().child("Users");

    mUsersList = (RecyclerView) findViewById(R.id.users_recyclerVIew);
    mUsersList.setHasFixedSize(true);
    mUsersList.setLayoutManager(new LinearLayoutManager(this));

    FirebaseRecyclerOptions<Users> options =
            new FirebaseRecyclerOptions.Builder<Users>()
                    .setQuery(query, Users.class)
                    .build();

    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersVIewHolder>(options) {

        @NonNull
        @NotNull
        @Override
        public UsersVIewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.users_single_layout , parent, false);
            UsersVIewHolder usersVIewHolder = new UsersVIewHolder(view);
            return new UsersVIewHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull @NotNull UsersVIewHolder holder, int position, @NonNull @NotNull Users model) {
            //holder.setDetails(getApplicationContext(), model.getName(), model.getDepartment(), model.getDescription());
            //holder.setDisplayName(getApplicationContext(), model.getName());
            //holder.setDisplayName().setText(model.getName());
            //holder.userName.setText(model.getName());

            holder.setDisplayName(model.getName());
            holder.setUserStatus(model.getStatus());

            String user_id = getRef(position).getKey();
            holder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent profileIntent = new Intent(UsersActivity.this, ProfileActivity.class);
                    profileIntent.putExtra("user_id", user_id);
                    startActivity(profileIntent);
                }
            });

            /*
            String userIds = getRef(position).getKey();
            query2.child(userIds).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull @NotNull DataSnapshot snapshot) {

                    if(snapshot.hasChild("image")) {
                        String profileImage = snapshot.child("image").getValue().toString();
                        String profileName = snapshot.child("name").getValue().toString();
                        String profileStatus = snapshot.child("status").getValue().toString();

                        holder.userName.setText(profileName);
                    }
                    else {
                        String profileName = snapshot.child("name").getValue().toString();
                        holder.userName.setText(profileName);
                    }
                }

                @Override
                public void onCancelled(@NonNull @NotNull DatabaseError error) {

                }
            });*/
        }

    };
    mUsersList.setAdapter(firebaseRecyclerAdapter);
}

@Override
protected void onStart() {
    super.onStart();


    //mUsersList.setAdapter(firebaseRecyclerAdapter);
    firebaseRecyclerAdapter.startListening();

}

@Override
protected void onStop() {
    super.onStop();

    /*
    if(firebaseRecyclerAdapter != null) {
        firebaseRecyclerAdapter.stopListening();
    }
    */
    firebaseRecyclerAdapter.stopListening();

}

public static class UsersVIewHolder extends RecyclerView.ViewHolder {

    TextView userName;
    View mView = itemView;

    public UsersVIewHolder(View itemVIew) {
        super(itemVIew);

        mView = itemVIew;
    }
    public void setDisplayName(String name) {
        TextView userNameView = (TextView) mView.findViewById(R.id.user_single_name);
        userNameView.setText(name);
    }
    public void setUserStatus(String status) {
        TextView userStatusView = (TextView) mView.findViewById(R.id.user_single_status);
        userStatusView.setText(status);
    }
}

}

有用户类

public class Users {

public String name;
public String image;
public String status;

public  Users() {

}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

}

有布局xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<de.hdodenhof.circleimageview.CircleImageView
    android:id="@+id/single_image_user"
    android:layout_width="64dp"
    android:layout_height="64dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="34dp"
    android:layout_marginEnd="294dp"
    android:layout_marginRight="294dp"
    android:src="@drawable/user"
    tools:layout_editor_absoluteX="16dp"
    tools:layout_editor_absoluteY="16dp">

</de.hdodenhof.circleimageview.CircleImageView>

<TextView
    android:id="@+id/user_single_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="38dp"
    android:layout_marginEnd="157dp"
    android:layout_marginRight="157dp"
    android:text="@string/users_display_name"
    android:textAllCaps="false"
    android:textSize="20sp"
    tools:layout_editor_absoluteX="88dp"
    tools:layout_editor_absoluteY="26dp" />

<TextView
    android:id="@+id/user_single_status"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginTop="73dp"
    android:layout_marginEnd="164dp"
    android:layout_marginRight="164dp"
    android:text="@string/user_default_status"
    tools:layout_editor_absoluteX="88dp"
    tools:layout_editor_absoluteY="54dp" />

谢谢!

0 个答案:

没有答案