请问扩展消息为什么不显示布局?代码如下
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;
}
}
@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;
}
}
没有找到相关结果
已邀请:
2 个回复
码农
跟踪没有调用
消息发送如下
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
}