android - 未从 Quickblox 示例中获取用户列表信息

标签 android quickblox-android

final ListView opponentsList = (ListView) view.findViewById(R.id.opponentsList);
        ArrayList<Integer> userIds = new ArrayList<>();
        QBUsers.getUsersByIDs(userIds, new QBPagedRequestBuilder(userIds.size(), 1), new QBEntityCallbackImpl<ArrayList<QBUser>>() {
            @Override
            public void onSuccess(ArrayList<QBUser> results, Bundle params) {
                super.onSuccess(results,params);
                List<QBUser> users = new ArrayList<>(results.size());
                for (QBUser result : results)
                {
                    // There mus be a more efficient, or at least better looking, way of doing this...
                    QBUser user = new QBUser();
                    user.setId(result.getId());
                    user.setLogin(result.getFullName());
                    users.add(user);
                }

                int i = searchIndexLogginedUser(users);
                if (i >= 0)
                    users.remove(i);

                // Prepare users list for simple adapter.
                //
                opponentsAdapter = new OpponentsAdapter(getActivity(), users);
                opponentsList.setAdapter(opponentsAdapter);
            }
        });
        progresDialog.dismiss();

使用 android 中的 Quickblox 示例从 QBUsers.getUsersByIDs() 获取用户数据时不执行 onSuccess 方法?

最佳答案

它没有显示,因为您没有向查询提供任何值:

ArrayList<Integer> userIds = new ArrayList<>();

在查询可以搜索用户是否存在并在 onSuccess 方法中返回 QBUser 之前,您应该向此列表添加一个或多个 id。 正确方法的一个例子是:

ArrayList<Integer> userIds = new ArrayList<>();
userIds.add(123456);
QBUsers.getUsersByIDs(userIds, new QBPagedRequestBuilder(userIds.size(), 1), new QBEntityCallbackImpl<ArrayList<QBUser>>() {
        @Override
        public void onSuccess(ArrayList<QBUser> results, Bundle params) {
            super.onSuccess(results,params);
            List<QBUser> users = new ArrayList<>(results.size());
            for (QBUser result : results)
            {
                // There mus be a more efficient, or at least better looking, way of doing this...
                QBUser user = new QBUser();
                user.setId(result.getId());
                user.setLogin(result.getFullName());
                users.add(user);
            }

            int i = searchIndexLogginedUser(users);
            if (i >= 0)
                users.remove(i);

            // Prepare users list for simple adapter.
            //
            opponentsAdapter = new OpponentsAdapter(getActivity(), users);
            opponentsList.setAdapter(opponentsAdapter);
        }
    });
    progresDialog.dismiss();

如果存在具有此 id 的用户,那么它将在 onSuccess() 方法中返回该用户。希望这会有所帮助。

关于android - 未从 Quickblox 示例中获取用户列表信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35199641/

相关文章:

android - 在 Android 中有效地缓存数据上传

java.lang.String 无法转换为 JSONObject

Android QuickBlox SDK 客户端未连接或不再连接

java - 计算闹钟的闹钟时间

android - 将 Android 项目从 Eclipse 迁移到 Android Studio 后找不到属性文件

android - 如何在 Android L 中创建类似 "Recent apps list"的列表

quickblox - 无法解析 : com. quickblox :quickblox-android-sdk-chat:2. 6.1

android - 在 android 中保持 quickblox 的用户 session 处于 Activity 状态

android - Quickblox 如何在 android 中记录通话?

android - QuickBlox WebRtc 视频聊天安卓