
基础产品
适用各种通信场景,接入灵活

融合场景
专为场景打造,接入成本低

扩展能力
核心能力延展,功能全面

更多服务
一站式服务,满足各种需求
回答:
操作选项被抽象为 MessageItemLongClickAction ,其中属性有显示名称 title、显示优先级(由上到下的顺序)priority、控制是否会被显示出来的过滤器 filter 以及被点击时的监听器 listener。
而对它的管理封装在 RongMessageItemLongClickActionManager 中,使用集合 messageItemLongClickActions 来装所有操作选项,并提供添加、删除、获取的接口:addMessageItemLongClickAction,removeMessageItemLongClickAction,getMessageItemLongClickActions
同时在初始化时,在方法 initCommonMessageItemLongClickActions 中已经添加了“复制消息”、“撤回消息”和“删除消息”三个操作选项
需要添加新的操作选项时,可以参考 initCommonMessageItemLongClickActions 中添加实现
需要删除已有操作选项时,先获取到要删除选项的对象,然后调删除接口 removeMessageItemLongClickAction
去除默认已经添加的“删除消息”选项示例:
List<MessageItemLongClickAction> clickActions = RongMessageItemLongClickActionManager .getInstance().getMessageItemLongClickActions(); Iterator<MessageItemLongClickAction> iterator = clickActions.iterator(); String delActionTitle = getString(R.string.rc_dialog_item_message_delete); while (iterator.hasNext()) { MessageItemLongClickAction clickAction = iterator.next(); boolean isDelAction = delActionTitle.equals(clickAction.getTitle(this)); if (isDelAction) { iterator.remove(); break; } }
注意:这些操作要在 IM 的 init 之后设置,且保证在主进程中执行