从firebase回收器适配器获取总项目数

时间:2017-11-01 20:25:25

标签: android firebase-realtime-database firebaseui

这是我的代码段 - 我希望在我的活动中获得总项数。 (即数据库参考中的所有孩子。我还要求总子计数动态变化,即添加或删除子项。

firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<Chat>().setQuery(databaseReference,Chat.class).build();

    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(firebaseRecyclerOptions)
    {
        @Override
        protected void onBindViewHolder(ChatHolder holder, int position, Chat model)
        {

            holder.txtName.setText(model.getName());

        }

        @Override
        public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType)
        {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chats, parent, false);
            return new ChatHolder(view);
        }



        @Override
        public void onDataChanged() {
            super.onDataChanged();

            firebaseRecyclerAdapter.notifyDataSetChanged();
        }

2 个答案:

答案 0 :(得分:1)

要解决此问题,您需要使用getItemCount()方法计算FirebaseRecyclerAdapter中的所有项目。

答案 1 :(得分:0)

你可以试试这个:

 DatabaseReference database = FirebaseDatabase.getInstance().getReference().child("yourChild");
 int childCount = 0;

        database.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snap: dataSnapshot.getChildren()) {
                    childCount+=snap.getChildrenCount();
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }

    });