首先需要定义action
clickAction = new MessageItemLongClickAction.Builder()
.title(getResources().getString(R.string.title_string))
.priority(0)
.actionListener(new MessageItemLongClickAction.MessageItemLongClickListener() {
@Override
public boolean onMessageItemLongClick(Context context, UIMessage message) {
…
return true;
}
}).build();
需要说明 :
-
onMessageItemLongClick的返回值遵循Android默认规则 true表示消费掉事件 false表示事件继续传递如果时间继续传递将会传递到对应消息类型的provider中
-
builder中除可设置标题及回调外还可设置优先级(priority)优先级越高排序时拍得越靠前
-
builder中还可定义showFilter用于根据不同消息类型确定action是否可见
定义完action后需要通过RongMessageItemLongClickActionManager.getInstance().addMessageItemLongClickAction(4.X)
MessageItemLongClickActionManager.getInstance().addMessageItemLongClickAction(5.X)
将action添加到manager中
需要移除时removeMessageItemLongClickAction
由于action保存在一个ArrayList中移除时需要确保参数action和ArrayList中的action是同一个对象否则可能会移除失败