我使用此代码但对我不起作用,也没有出现任何内容。
我尝试了在互联网和 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" />
谢谢!