注册

请问扩展消息为什么不显示布局?代码如下

    chatFragmentHelper = new EaseChatFragmentHelper() {
            
            @Override
            public void onSetMessageAttributes(EMMessage message) {

            }
            
            @Override
            public EaseCustomChatRowProvider onSetCustomChatRowProvider() {
                // TODO Auto-generated method stub
                return new CustomChatRowProvider(getActivity());
 
public class CustomChatRowProvider  implements EaseCustomChatRowProvider {

    private static final int MESSAGE_TYPE_SENDSHAREPIC = 1;//发送
    private static final int MESSAGE_TYPE_RECEIVEDSHAREPIC = 2;//接收

    private Context mContext;

    public CustomChatRowProvider(Context mContext) {
        this.mContext = mContext;
    }

    /**
     * 创建自定义的布局类型数量(返回值必须是类型的数量*2.包括接收布局和发送布局)
     * @return
     */
    @Override
    public int getCustomChatRowTypeCount() {
        return 2;
    }

    /**
     * 根据message的接收和发送  返回自定义的布局类型
     * @param message
     * @return
     */
    @Override
    public int getCustomChatRowType(EMMessage message) {
        //这里做个判断    如果能取到扩展字段    就返回消息类型
        try {
            message.getStringAttribute("title");
            return message.direct() == EMMessage.Direct.RECEIVE ?MESSAGE_TYPE_RECEIVEDSHAREPIC:MESSAGE_TYPE_SENDSHAREPIC;
        } catch (HyphenateException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * 返回chatrow   每种文件的类型(图片、音频)  这里返回自定义的分享布局
     * @param message
     * @param position
     * @param adapter
     * @return
     */
    @Override
    public EaseChatRow getCustomChatRow(EMMessage message, int position, BaseAdapter adapter) {
        //同上    如果能取到扩展字段    就返回消息类型
        try {
            message.getStringAttribute("title");
            return new CinicalChatRow(mContext, message, position, adapter);
        } catch (HyphenateException e) {
            e.printStackTrace();
        }
        return null;
    }
}
已邀请:
     return new CustomChatRowProvider(getActivity());
跟踪没有调用
消息发送如下
        
        EMMessage message = EMMessage.createTxtSendMessage("分享的扩展消息",toChatUsername);

        message.setAttribute("title", "");
        message.setAttribute("icon", "");
        message.setAttribute(ClinicalConstant.myExtType, "ClinicalType");
        message.setAttribute("senderid", toChatUsername);
        EMClient.getInstance().chatManager().sendMessage(message);
解决了 希望帮助大家
setChatFragmentListener(this);
不能放在create里

    @Override
    protected void setUpView() {
        setChatFragmentListener(this);
        super.setUpView();
        // set click listener

    }

要回复问题请先登录注册