在Android中使用FirestoreRecyclerAdapter时未在RecyclerView中显示用户 [英] Doesn't show users in RecyclerView while using FirestoreRecyclerAdapter in Android
问题描述
我正在使用Firestore RecyclerAdapter在RecyclerView中显示用户,但仍显示空白页,这意味着它无法在RecyclerView中检索用户列表.我很困惑为什么它没有显示用户.
I am using Firestore RecyclerAdapter to display Users in RecyclerView, it still shows a blank page that means it is unable to retrieve the list of users in RecyclerView. I am Confused why it is not displaying the users.
这是我的代码:
Java文件(MainActivity.java)
Java file (MainActivity.java)
public class UserSearch extends AppCompatActivity
{
private RecyclerView rv;
private ProgressBar mProgressbar;
private CollectionReference mUser;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_search);
rv = (RecyclerView) findViewById(R.id.myrecycler_view);
rv.setHasFixedSize(true);
rv.setLayoutManager(new LinearLayoutManager(this));
mUser = FirebaseFirestore.getInstance().collection("users");
Query query = mUser;
FirestoreRecyclerOptions<Users> options = new
FirestoreRecyclerOptions.Builder<Users>()
.setQuery(query, Users.class)
.build();
FirestoreRecyclerAdapter adapter = new FirestoreRecyclerAdapter<Users,
FriendsHolder>(options)
{
@Override
public FriendsHolder onCreateViewHolder(ViewGroup group, int i)
{
View view = LayoutInflater.from(group.getContext())
.inflate(R.layout.list_layout, group, false);
return new FriendsHolder(view);
}
@Override
public void onError(FirebaseFirestoreException e)
{
Log.e("error", e.getMessage());
}
@Override
protected void onBindViewHolder(FriendsHolder holder, int
position,users model)
{
holder.nameText.setText(model.getName());
holder.emailText.setText(model.getEmail());
}
};
rv.setAdapter(adapter);
}
private class FriendsHolder extends RecyclerView.ViewHolder
{
View mView;
public TextView nameText;
public TextView emailText;
public FriendsHolder(View itemview)
{
super(itemview);
mView=itemview;
nameText=(TextView)mView.findViewById(R.id.single_user_name);
emailText=(TextView)mView.findViewById(R.id.Email_user);
}
}
这是我的用户类(getter/setter文件)
and here is my Users Class (getter/setter file)
public class Users {
public String Name;
public String Email;
public Users(){
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public Users(String name, String email) {
this.Name = name;
this.Email = email;
}
}
推荐答案
要解决此问题,请更改以下内容:
To solve this, change this:
setContentView(R.layout.activity_user_search);
rv = (RecyclerView) findViewById(R.id.myrecycler_view);
rv.setHasFixedSize(true);
rv.setLayoutManager(new LinearLayoutManager(this));
mUser = FirebaseFirestore.getInstance().collection("users");
Query query = mUser;
FirestoreRecyclerOptions<Users> options = new
FirestoreRecyclerOptions.Builder<Users>()
.setQuery(query, Users.class)
.build();
对此:
setContentView(R.layout.activity_user_search);
rv = (RecyclerView) findViewById(R.id.myrecycler_view);
rv.setLayoutManager(new LinearLayoutManager(this));
mUser = FirebaseFirestore.getInstance().collection("users");
Query query = mUser;
FirestoreRecyclerOptions<Users> options = new
FirestoreRecyclerOptions.Builder<Users>()
.setQuery(query, Users.class)
.build();
删除 rv.setHasFixedSize(true)
还要在 onStart()
中添加 adapter.startListening()
,并在 onStop()中添加
adapter.stopListening()
代码>
also add adapter.startListening()
in onStart()
and adapter.stopListening()
in onStop()
这篇关于在Android中使用FirestoreRecyclerAdapter时未在RecyclerView中显示用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!