quickblox.my prob:无法加载聊天记录只显示最后一条消息

时间:2017-05-27 06:26:35

标签: java android chat quickblox quickblox-android

not load chat history

请帮助我解决它。

尝试使用此代码保存聊天可能是我不确定:

private void retrievemessage() {
    QBMessageGetBuilder messageGetBuilder = new QBMessageGetBuilder();
    messageGetBuilder.setLimit(500);

    if (qbChatDialog != null)
    {
        QBRestChatService.getDialogMessages(qbChatDialog,messageGetBuilder).performAsync(new QBEntityCallback<ArrayList<QBChatMessage>>() {
            @Override
            public void onSuccess(ArrayList<QBChatMessage> qbChatMessages, Bundle bundle) {
                QBChatMessagesHolder.getInstance().putmessages(qbChatDialog.getDialogId(),qbChatMessages);
                adapter=new ChatMessageAdapter(getBaseContext(),qbChatMessages);
                listchatmessage.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onError(QBResponseException e) {
                Log.e("ERROR",""+e.getMessage());

            }
        });
    }

}

和我的持有人

public class QBChatMessagesHolder {
private static QBChatMessagesHolder instance;
private HashMap<String,ArrayList<QBChatMessage>> qbchatmessagearray;

public static synchronized QBChatMessagesHolder getInstance() {
    QBChatMessagesHolder qbChatMessagesHolder;
    synchronized (QBChatMessagesHolder.class) {
        if (instance == null)
            instance = new QBChatMessagesHolder();
            qbChatMessagesHolder = instance;
    }
    return qbChatMessagesHolder;
}
private QBChatMessagesHolder()
{
this.qbchatmessagearray=new HashMap<>();

}
public void putmessages(String dialogId,ArrayList<QBChatMessage> qbChatMessages)
{
    this.qbchatmessagearray.put(dialogId,qbChatMessages);
}
public void putmessage(String dialogId,QBChatMessage qbChatMessage)
{
    ArrayList<QBChatMessage> lstResult=new ArrayList<>();
    qbchatmessagearray.get(dialogId);
    lstResult.add(qbChatMessage);
    ArrayList<QBChatMessage> lstAdded= new ArrayList(lstResult.size());
    lstAdded.addAll(lstResult);
    putmessages(dialogId,lstAdded);
}

public ArrayList<QBChatMessage> getChatMessageByDialogId(String dialogId)
{
    return (ArrayList<QBChatMessage>)this.qbchatmessagearray.get(dialogId);
}
}

我认为我的问题是形式lstresult。

我的消息转到历史记录,但只显示上一条消息

0 个答案:

没有答案