我正在尝试使用样本聊天代码在应用中创建聊天。
在成功创建对话框后,我授权用户获得了对手ID:
ChatService.initIfNeed(this);
QBUsers.getUserByLogin(login, new QBEntityCallbackImpl<QBUser>() {
@Override
public void onSuccess(QBUser qbUser, Bundle args) {
QBPrivateChatManager privateChatManager = QBChatService.getInstance().getPrivateChatManager();
privateChatManager.createDialog(qbUser.getId(), new QBEntityCallbackImpl<QBDialog>() {
@Override
public void onSuccess(QBDialog dialog, Bundle args) {
ChatActivity.this.dialog = dialog;
setContentView(R.layout.activity_chat);
initViews();
if (isSessionActive()) {
initChat();
}
ChatService.getInstance().addConnectionListener(chatConnectionListener);
}
@Override
public void onError(List<String> errors) {
Log.e("chat", errors.toString());
}
});
}
@Override
public void onError(List errors) {
Log.e("chat", errors.toString());
}
});
但是在initViews()我
时出错了else if (dialog.getType() == QBDialogType.PRIVATE) {
Integer opponentID = ChatService.getInstance().getOpponentIDForPrivateDialog(dialog);
companionLabel.setText(ChatService.getInstance().getDialogsUsers().get(opponentID).getLogin());
}
错误是因为ChatService.getInstance()。getDialogsUsers()返回0个元素:,所以ChatService.getInstance()。getDialogsUsers()。get(opponentID).getLogin()给出异常。 我在文档中找不到任何解释: 为什么我在ChatService.getInstance()中有0个元素.getDialogsUsers()?对话框已成功创建。
答案 0 :(得分:1)
&#39; getDialogsUsers&#39;它不是SDK方法,而是来自代码示例
您可以查看它,它做了什么
它返回用户地图,在L172中设置
尝试关注此文件并将所有必需的逻辑移至您的应用