Android - Firebase - Send Users to Chat Room

后端 未结 3 776
余生分开走
余生分开走 2020-12-12 07:27

Aim

Allowing the Users to access their selected Group Chat. Once the user clicks on the Group Chat name, they will be entered into that Group Chat.<

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-12 08:12

        public class group_name_list_adapter extends RecyclerView.Adapter {
    
            private List< group_name_list> listItems;
            private Context context;
            OnItemClickListener onItemClickListener;
    
            public group_name_list_adapter(List listItems, Context context) {
                this.listItems = listItems;
                this.context = context;
            }
    
            @Override
            public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View v = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.group_name_list, parent, false);
                return new ViewHolder(v);
            }
    
            @Override
            public void onBindViewHolder(ViewHolder holder, final int position) {
                group_name_list listItem = listItems.get(position);
    
                holder.txtTitle.setText(listItem.getTxtTitle());
                holder.txtTitle.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        onItemClickListener.onGroupNameClick(position);
                    }
                });
            }
    
            @Override
            public int getItemCount() {
                return listItems.size();
            }
    
            public class ViewHolder extends RecyclerView.ViewHolder {
    
                public TextView txtTitle;
    
                public ViewHolder(View itemView) {
                    super(itemView);
                    txtTitle = (TextView) itemView.findViewById(R.id.txtTitle);
                }
            }
            public void setOnItemClickListener(OnItemClickListener onItemClickListener){
                this.onItemClickListener = onItemClickListener;
            }
    
            public interface OnItemClickListener{
                void onGroupNameClick(int position); 
            }
        }
    
    
    
        public class group_name_list {
    
            private String txtTitle;
    
            public group_name_list(String txtTitle) {
                this.txtTitle = txtTitle;
            }
    
            public String getTxtTitle() {
                return txtTitle;
            }
        }
    
    
    
        public class ChatActivity implements group_name_list_adapter.OnItemClickListener
    
        private RecyclerView recyclerGroupName;
        private group_name_list_adapter groupNameAdapter;
        private List group_name_List;
        private List groupNameKeyList; //This is optional – this is used if you wanted the group chats to have the same name instead of overwriting the groupchat when creating.
    
        Inside your Firebase call:
    
        group_name_List.removeAll(group_name_List t);
        groupNameKeyList.removeAll(groupNameKeyList);
        //Depending on your firebase reference. This could just be dataSnapshot.getChildren()
        for (DataSnapshot child : dataSnapshot.child("Group Chats").getChildren()){
    
    
            if (!child.getKey().equals(null)){
                groupNameKeyList.add(child.getKey().toString()); //Again this is optional
            }
    
            group_name_list newGroupList = child.getValue();
            );
            groupNameList.add(newGroupList);
        }
        recyclerGroupName.setAdapter(groupNameAdapter);
    
        gLayoutAttribute = new GridLayoutManager(getActivity(), 1);
        recyclerGroupName = (RecyclerView) rootView.findViewById(R.id.recyclerGroupName);
        recyclerGroupName.setHasFixedSize(true);
        recyclerGroupName.setLayoutManager(new LinearLayoutManager(this.getContext()));
        recyclerGroupName.setLayoutManager(gLayoutAttribute);
    
    
    @Override
        public void onAttributeClick(int position) {
            Intent intentUserProfile = new Intent(getActivity(), ChatActivity.class);
            intentUserProfile.putExtra("groupChatName",groupName);
            intentUserProfile.putExtra("neighbourhood", neighbourhood);
            intentUserProfile.putExtra("usersName", usersName);
            intentUserProfile.putExtra("usersID", usersID);
            intent.putExtra("name", groupList.get(position).toString());
            //intent.putExtra("name", groupListKeyList.get(position).toString()); this is your optional key
            startActivity(intentUserProfile);
        }
    

提交回复
热议问题