关于Android群聊的那点事
说到群聊很多人立马会想到.群聊就是我在群聊界面里发送消息,然后群里的所有人都能收到.但是,这个过程我们仔细想想,然后一步一步解剖.
第一步:从群创建开始,群创建需要什么?群主和邀请人来共同组合成一个群.
第二步:创建完群之后,我们要对群进行各种操作.提到操作,不同的人对群操作是不同的,显而易见,群主的权限更大.那么,不同的人都有哪些权限呢?
举个简单的例子:比如群主(1.群主可以邀请好友加入自己创建的群.反之,群主可以剔除某些人 2.群主可以修改群的一些基本信息,如群名称,给指定的人一些权限等 3.可以删除或者退出该群等等)
以上对群组做了一些简单的分析.主要是最近在做群聊这一块,很是费劲,工作量极大,累觉无爱!刚做到消息的处理这一块:
比如消息发送和接收,直接代码:
btn_chat_send = (Button) view.findViewById(R.id.chat_send); btn_chat_send.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
switch (state) { case MSG_DO_ChangeToButton:
if (et_chat_editmessage.getText().length() > 0) {
chatmsg = new ChatAllMessage();
chatmsg.setContent(et_chat_editmessage.getText() .toString());
chatmsg.setDirection(ChatAllMessage.MESSAGE_RIGHT);
chatmsg.setUsername(new String(
mContext.mLoginPersonInfo.Name));
chatmsg.setTime(UrlUtils.getTime());
chatmsg.setImg(mContext.mSelectedPersonInfo.rowid);
byte[] by = et_chat_editmessage.getText().toString().getBytes();
// 单人聊天 //
if (type == 0) { mContext.m_ClassSync.SendChatMsg((ID - 48), by, by.length, 0); //
}else if(type==1){ //
mContext.m_ClassSync.SendGroupChatMessage(mContext.mGroupInfoList.get(position).getRowid(), (ID - 48), by, by.length); //
}
list.add(chatmsg);
mAdapter.notifyDataSetChanged();
chat_listview.setSelection(mAdapter.getCount() - 1);
et_chat_editmessage.setText(""); }
break;
case MSG_DO_ChangeToAdd:
Intent intent=new Intent();
intent.setClass(mContext, FileActivity.class);
mContext.startActivity(intent); break;
}
}
});
这是消息发送的主要代码 下面接收部分的代码,比较简洁:
mContext.sendMessage = new SendMessage() {
@Override public void send(ChatAllMessage msg) {
System.out.println("direction:" + msg.getDirection());
msg.setUsername(username);
msg.setImg(img);
list.add(msg);
mHandler.sendEmptyMessage(MSG_Chat_Message_Left);
}
};
chat_listview.setAdapter(mAdapter);
chat_listview.setSelection(mAdapter.getCount() - 1);
接收消息就是用借口回调来做的.
做出来的效果主要就是当EditText输入框里面的消息为空时,按钮为底部弹出窗体按钮 当输入框内有文字或者其他字符时(获取的输入框的内容的长度大于0时)
按钮变为发送按钮,然后点击发送消息.效果还不错.
各位博友们,欢迎积极参与学习和讨论中来,康莽北鼻!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。