Xmmp搜索用户

/**
* 搜索用户
* @param searchResult
* @param queryText
*/
public void searchUser(final ISearchResult searchResult,String queryText) {

    new AsyncTask<String, Void, List<User>>() {

        @Override
        protected void onPostExecute(List<User> aVoid) {
            searchResult.onSearchResult(aVoid);
        }

        @Override
        protected List<User> doInBackground(String... params) {
            UserSearchManager userSearchManager = new UserSearchManager(con);
            List<User> userList = null;
            try {
                String searchService = "search." + con.getServiceName();
                Form form = userSearchManager.getSearchForm(searchService);
                Form answerForm = form.createAnswerForm();
                answerForm.setAnswer("Username", true);
                answerForm.setAnswer("search", params[0]);
                ReportedData data = userSearchManager.getSearchResults(answerForm, searchService);

                List<ReportedData.Row> rowList = data.getRows();
                if (rowList != null) {
                    userList = new ArrayList<>(rowList.size());
                    for (ReportedData.Row row : rowList) {
                        User user = new User();
                        String jid = row.getValues("jid").get(0);
                        String username = row.getValues("username").get(0);
                        String name = row.getValues("name").get(0);
                        user.setJid(jid);
                        user.setNickname(name);
                        user.setUsername(username);
                        userList.add(user);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            return userList;
        }
    }.execute(queryText);

}
posted @ 2015-07-06 16:13  cirno_9  阅读(233)  评论(0编辑  收藏  举报