本文介绍了Firebase RecyclerView UI 未显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试使用 recyclerview 在我的应用中实现 firebase ui.我的 firebase 数据库中有我想要使用 firebase ui recycler view 的项目.到目前为止,我认为我已经做对了一切,但是,当我运行我的应用程序时,它仍然显示为空白.任何帮助将不胜感激.

I have been trying to implement firebase ui in my app with recyclerview. I have items on my firebase database which i want to with firebase ui recycler view. So far, i think i have done everything right, however, when i run my app it still shows blank. Any help would be greatly appreciated.

public class UsersActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private Query query;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_users);
        query = FirebaseDatabase.getInstance().getReference().child("Users");
        mRecyclerView = findViewById(R.id.recycler_view);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    }

    @Override
    protected void onStart() {
        super.onStart();
        FirebaseRecyclerOptions <Users> firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<Users>()
                .setQuery(query, Users.class).build();
        FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(firebaseRecyclerOptions){

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

            @Override
            protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {
                holder.setName(model.getName());

            }
        };
        mRecyclerView.setAdapter(firebaseRecyclerAdapter);
    }
    public static class UsersViewHolder extends RecyclerView.ViewHolder{
View mView;
        UsersViewHolder(View itemView) {
            super(itemView);
            mView = itemView;
        }
        public void setName (String name){
            TextView mName = mView.findViewById(R.id.user_name);
            mName.setText(name);
        }
    }
}

推荐答案

需要添加以下内容:

FirebaseRecyclerAdapter 使用事件侦听器来监控 Firebase 查询的更改.要开始侦听数据,请调用 startListening() 方法.您可能希望在 onStart() 方法中调用它.在调用 startListening() 之前,请确保您已完成读取数据所需的任何身份验证,否则您的查询将失败.

@Override
protected void onStart() {
super.onStart();
firebaseRecyclerAdapter.startListening();
}

@Override
protected void onStop() {
super.onStop();
firebaseRecyclerAdapter.stopListening();
 }

更多信息在这里:

https://github.com/firebase/FirebaseUI-Android/tree/master/数据库

这篇关于Firebase RecyclerView UI 未显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-27 10:23
查看更多