在Android中使用FirestoreRecyclerAdapter时未在RecyclerView中显示用户 [英] Doesn't show users in RecyclerView while using FirestoreRecyclerAdapter in Android

查看:73
本文介绍了在Android中使用FirestoreRecyclerAdapter时未在RecyclerView中显示用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆