允許用戶訪問他們選擇羣聊。一旦用戶點擊羣聊名稱,他們就會進入該羣聊。
數據庫樹
在數據庫中的樹表示,當前登錄用戶將顯示已創建的羣聊名稱的列表。
我有一個管理員帳戶爲用戶創建這些組聊天。
在數據庫中看到的Android,亞洲和歐洲羣組聊天內容不是固定變量。他們是名字。新的羣聊名稱可以是「地球」。
因此,除了由節點本身調用它之外,沒有辦法通過變量調用它。羣聊2.應用
截圖
- 列表中輸入一個羣聊
流活動
GroupFragment ---> ChAT活性
GroupFragment < --- ChAT活性
應用的流
用戶---> LoginActivity ---> UserActivity ---> GroupFrag ---> GroupChatActivity
在(GroupFrag ---> GroupChatActivity)用戶必須選擇一個羣聊na我GroupFrag內進入GroupChatActivity
用戶必須在GroupFrag內選擇一個羣聊名稱進入GroupChatActivity
說明
- 的用戶將能夠選擇一個羣聊名稱(來自GroupFragment)並且該應用程序將使用戶進入羣聊自身(進入聊天活動)。用戶將能夠回到GroupFragment並選擇另一個想要的組。
(羣聊名稱不固定 - 他們是不是可以從被稱爲節點)
問題
- 我無法選擇羣聊名字在片段中被提示後,然後將我帶到羣組聊天。
組片段
@Override
public void onStart() {
super.onStart();
class GroupAdapter extends RecyclerView.Adapter<GroupAdapter.MyHolder> {
ArrayList<String> list;
public GroupAdapter(ArrayList<String> list) {
this.list = list;
}
@Override
public GroupAdapter.MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_groups, parent, false);
return new MyHolder(view);
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
holder.setText(list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
class MyHolder extends RecyclerView.ViewHolder {
TextView nameTextView;
public MyHolder(View itemView) {
super(itemView);
nameTextView = itemView.findViewById(R.id.groupChatNameTxt);
}
public void setText(String groupName) {
nameTextView.setText(groupName);
}
}
}
jGroupsDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ArrayList<String> groupChatNames = new ArrayList<>();
for (DataSnapshot child : dataSnapshot.getChildren()) {
groupChatNames.add(child.getKey());
}
GroupAdapter adapter = new GroupAdapter(groupChatNames);
jGroupChatList.setAdapter(adapter);
//I'm not sure where to write a code for userID
//final String usersID = getRef(position).getKey();
// When the user clicks on one of the group chat names, he/she will be sent to the Chat Activity
jGroupChatList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intentUserProfile = new Intent(getActivity(), ChatActivity.class);
intentUserProfile.putExtra("groupChatName",groupName);
intentUserProfile.putExtra("neighbourhood", neighbourhood);
intentUserProfile.putExtra("usersName", usersName);
intentUserProfile.putExtra("usersID", usersID);
startActivity(intentUserProfile);
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
ChAT活性
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
jGroupChatName = getIntent().getExtras().get("groupChatName").toString();
jUserID = getIntent().getExtras().get("usersID").toString();
jUserName = getIntent().getExtras().get("usersName").toString();
jUserNeighbourhood = getIntent().getExtras().get("neighbourhood").toString();
jChatRoot = FirebaseDatabase.getInstance().getReference().child(jGroupChatName);
jChatToolbar = (Toolbar) findViewById(R.id.allUSersToolBar);
setSupportActionBar(jChatToolbar);
getSupportActionBar().setTitle(jGroupChatName); // Show the name of the selected group name
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
附加評論
- 在線教程
我在YouTube上觀看了Android Firebase羣聊聊天教程。鏈接是https://www.youtube.com/watch?v=wVCz1a3ogqk。但是它並沒有提供一些我試圖實現的特性/功能。
- 鏈接的問題
Android - Firebase - Prompting Group Chat Names
未來實現
對於未來的實現,我想發送和檢索信息,並提示它變成了用戶羣聊像真正的羣聊一樣查看。但是,當然,我會把它留給另一個問題。
您的「羣組」是靜態的或動態的 –
我的羣組名稱是動態的。如果我要添加名爲「地球」的羣聊,則會有一個名爲「地球」的羣聊。名稱不是**固定**。我應該添加整個班級的代碼嗎?現在我只添加了重要的。意思是我已經排除了進口,私人等等。我發佈的代碼只是功能。謝謝你回答這個問題= D – Student
只是爲了澄清 - 你有一個listview對應於羣聊節點?在這個例子中,listView有3個值?你想說當用戶點擊listView時,他們的用戶名(一個變量)被附加到羣聊節點上? – Torewin