请帮助我非常需要解决它。
尝试通过此代码保存聊天可能是我不确定:
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。
我的消息进入历史记录,但只显示最后一条消息