Android 环信easeui常见问题
来源:互联网 发布:软件著作权多少钱 编辑:程序博客网 时间:2024/05/17 18:46
Android 环信在选择联系人的时候没有群组:
之前做了环信的自定义消息:环信自定义消息
在做消息转发以及分享的时候需要跳转到选择联系人界面。但是发现默认只有具体的联系人,并没有群组。
所以只能是靠自己实现了:
1.PickContactNoCheckboxActivity类是选择联系人界面的基类,在这个类中有一个方法时获取联系人getContactList()。需要在这个方法中将群组列表添加进去:
//TODO 添加群组 List<EMGroup> allGroups = EMClient.getInstance().groupManager().getAllGroups(); for (EMGroup emGroup : allGroups) { String username = emGroup.getGroupId(); String nick = emGroup.getGroupName(); EaseUser user = new EaseUser(username); user.setNick(nick); user.setAvatar(R.drawable.em_group_icon + ""); user.setFlag(true); contactList.add(user); }
注意:
Map<String, EaseUser> users = DemoHelper.getInstance().getContactList();这个方法是获取好友集合,一定要将DemoHelper类的getContactList()方法进行修改,每次都要在数据库获取,而不是内存,不然数据有重复。
public Map<String, EaseUser> getContactList() { if (isLoggedIn() && contactList == null) { contactList = demoModel.getContactList(); } //TODO 用来删除已添加的群组 if (contactList != null) { contactList.clear(); contactList = demoModel.getContactList(); } // return a empty non-null object to avoid app crash if (contactList == null) { return new Hashtable<String, EaseUser>(); } return contactList;}
2.在EaseUser类中添加一个字段,用来区分是好友或者群组;
3.在EaseContactAdapter类getView()方法中,判断是好友还是群组,用来区分加载不同的头像:
//TODO 个人(单聊) if (!user.getFlag()) { EaseUserUtils.setUserNick(username, holder.nameView); EaseUserUtils.setUserAvatar(getContext(), username, holder.avatar); } else {//群组(群聊) holder.nameView.setText(user.getNick()); try { int avatarResId = Integer.parseInt(user.getAvatar()); Glide.with(context).load(avatarResId).into(holder.avatar); } catch (Exception e) { //use default avatar Glide.with(context).load(user.getAvatar()).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.ease_default_avatar).into(holder.avatar); } }
4..在ForwardMessageActivity类onListItemClick()方法中进行判断不同的跳转,用来区分是单聊还是群聊。
@Override protected void onListItemClick(int position) { selectUser = contactAdapter.getItem(position); new EaseAlertDialog(this, null, getString(R.string.confirm_forward_to, selectUser.getNick()), null, new AlertDialogUser() { @Override public void onResult(boolean confirmed, Bundle bundle) { if (confirmed) { if (selectUser == null) return; try { ChatActivity.activityInstance.finish(); } catch (Exception e) { } //TODO 单聊/群组聊天 boolean flag = selectUser.getFlag(); if (!flag) { Intent intent = new Intent(ForwardMessageActivity.this, ChatActivity.class); // it is single chat intent.putExtra("userId", selectUser.getUsername()); intent.putExtra("forward_msg_id", forward_msg_id); startActivity(intent); } else { Intent intent = new Intent(ForwardMessageActivity.this, ChatActivity.class); intent.putExtra("chatType", Constant.CHATTYPE_GROUP); intent.putExtra("forward_msg_id", forward_msg_id); intent.putExtra("userId", selectUser.getUsername()); startActivity(intent); } finish(); } } }, true).show(); }
修改聊天界面输入框背景:
在easeui库中找的EaseChatPrimaryMenu类,全局搜索edittext_layout,将设置的背景改成自己OK了。
阅读全文
1 0
- Android 环信easeui常见问题
- Android 集成环信EaseUI
- Android使用EaseUI集成环信3.0
- Android环信EaseUI的快速集成
- Android集成环信3.0的easeui
- android环信easeui自定义消息--名片
- Android 使用集成环信EaseUI
- android studio在引入环信EaseUI库出错
- Android 环信EaseUI遇到的问题及解决方法
- Android如何快速集成环信EaseUI(最强修改版)
- Android环信IM简单集成(EaseUI)
- 环信 easeui导入 问题
- studio集成环信EaseUI
- ios 快速集成环信EaseUI
- AndroidStudio引入环信easeui库出错
- 导入环信 easeui 遇到的问题
- 即时通信(环信) EaseUI 集成视频
- 环信EaseUI集成遇到的问题
- 创建私有pod
- TinyXML 根据属性名,属性值返回对应的元素节点(源代码)
- VOT顶尖目标跟踪Tracker论文+源代码合集
- Zend Optimizer not Installed
- THREE.js案例源码学习-- orthographic
- Android 环信easeui常见问题
- mybatis之mapper的配置
- gulp-Gulp资料大全:入门、插件、脚手架、包清单
- vue从入门到放弃---Vuex vueBus
- window 安装thrift
- jxbrowser-6.14 jxbrowser破解版
- WPF头像裁剪
- 【脚本语言系列】关于PythonWeb客户端标准库requests,你需要知道的事情
- 79-Word Search