2

有一个活动列出了在 Firebase 中注册的用户。这里列出了所有用户。还有消息活动。我想列出刚刚在那里发短信的人。我在 Firebase 中有聊天列表。在这里发短信的人是 id。以下代码列出了所有用户。如果 id 匹配,则将 user 表与 Chatlist 表进行比较,消息将被添加到活动中。如何更改此代码以进行匹配?

 @Override
protected void onStart() {
    super.onStart();

    FirebaseRecyclerAdapter<Users, AllUserViewHolder> adapter =
            new FirebaseRecyclerAdapter<Users, AllUserViewHolder>
                    (
                            Users.class,
                            R.layout.user_item,
                            AllUserViewHolder.class,
                            usersRef

                    )
            {
                @Override
                protected void populateViewHolder(final AllUserViewHolder viewHolder, Users model, final int position)
                {
                    final String usersIDs = getRef(position).getKey();

                    usersRef.child(usersIDs).addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            if (dataSnapshot.exists())
                            {
                                final String userName =dataSnapshot.child("fullname").getValue().toString();
                                final String profileImage = dataSnapshot.child("profileimage").getValue().toString();
                                final String biography = dataSnapshot.child("biography").getValue().toString();

                                viewHolder.setFullname(userName);
                                viewHolder.setProfileimage(getApplicationContext(), profileImage);
                                viewHolder.setBiography(biography);

                                viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View view) {

                                        CharSequence options[] = new CharSequence[]
                                                {
                                                        userName + "profilini gör",
                                                        "Mesaj Gönder"
                                                };
                                        AlertDialog.Builder builder = new AlertDialog.Builder(MessageActivity.this);
                                        builder.setTitle("Seç:");

                                        builder.setItems(options, new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(DialogInterface dialogInterface, int i)
                                            {
                                                if (i ==0)
                                                {
                                                    Intent profileIntent = new Intent(MessageActivity.this, UserProfileActivity.class);
                                                    profileIntent.putExtra("visit_user_id", usersIDs);
                                                    startActivity(profileIntent);
                                                }
                                                if (i == 1)
                                                {
                                                    Intent chatIntent = new Intent(MessageActivity.this, ChatActivity.class);
                                                    chatIntent.putExtra("visit_user_id", usersIDs);
                                                    chatIntent.putExtra("userName", userName);
                                                    startActivity(chatIntent);
                                                }

                                            }
                                        });
                                        builder.show();
                                    }
                                });
                            }
                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }
                    });




                }
            };
    usersList.setAdapter(adapter);
}
4

1 回答 1

1

您可以暂时将它们全部添加到数组列表中,然后将该数组列表的内容与您的chatlist.

ArrayList<String> temp = new ArrayList<String>();

这种方法不仅更适合您考虑,而且相对更容易编码。

如果您对该方法有一些困难,请添加您的数据库结构,我可以帮助您为此编写代码。

于 2018-12-25T03:23:18.397 回答