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<>();


您应该在此列表中添加一个或多个ID,然后查询才能搜索该用户是否存在并以onSuccess方法返回QBUser。
正确的做法示例如下:

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/

10-09 08:01
查看更多