Android Studio - RecyclerView清单

时间:2018-05-02 02:59:30

标签: java android firebase android-recyclerview

当我在ValueEventListener中使用populateViewHolder时,列表会变空。但是当我不这样做时,这个名单就会被占位符填满。这很奇怪,因为我已经在其他recyclerview中使用了EventListener并且工作正常。但我不知道这里发生了什么。

我必须使用它的原因是因为我在我的数据库中有这样的事情:

-> root
---> Events
------> -L9TDlh9MukU9vuHUAv-
----------> asist
--------------> Users ids that go to this event
----------> /* Other event stuff */
------> -LA3OyftXo2nSKMzhVCu
----------> asist
--------------> Users ids that go to this event
----------> /* Other event stuff */

---> Users
------> JrB6orsAs0PP7SHLKfiC9hEE9ax1
---------> /* User stuff */
------> MfFyQ2GbDbRr61I8j4QtQn7XoIj1
---------> /* User stuff */

因此,recyclerview会获取事件的asist列表,并且每个项目都会获得用户的ID。对于每个id,我从Users数据库设置了一个ValueEventListener,在那里我获得了用户信息来填充项目的内容。我这么做很多次,每次都很棒。但我不知道为什么我无法解决这个问题。

  

这是recyclerView配置:

recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
  

这是适配器:

userDatabase = FirebaseDatabase.getInstance().getReference().child("Events").child("-L9TDlh9MukU9vuHUAv-").child("asist");

adapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(

            Users.class,
            R.layout.users_row_layout,
            UsersViewHolder.class,
            userDatabase

    ) {
        @Override
        protected void populateViewHolder(final UsersViewHolder viewHolder, Users model, final int position) {
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
            mDatabase.child(getRef(position).getKey().toString()).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }
    };

    recyclerView.setAdapter(adapter);

0 个答案:

没有答案