2013-07-20 3 views
1

몇 시간 동안이 문제를 해결했습니다. 나는 API를 배우고있다. 문제는 모든 일치 옵션을 제공하는 친구 (사용자)를 검색 할 때입니다. 예를 들어 나는이 사용자가 : -user -user1 -user2메아리로 특정 사용자를 검색하는 방법

모든 사용자를 반환 "사용자"를 검색. 정확히 일치하는 사용자 한 명만 반환하고 싶습니다. 어떻게해야합니까?

Form searchForm = search.getSearchForm("search.localhost"); 
Form answerForm = searchForm.createAnswerForm(); 

answerForm.setAnswer("Username", true); 
answerForm.setAnswer("search", "user"); 

ReportedData data = search.getSearchResults(answerForm, "search.localhost"); 
.... 

답변

0

당신은 정확한 JID를 검색해야합니다 감사합니다.

answerForm.setAnswer("search", "[email protected]");

또는

answerForm.setAnswer("search", "user" + "@" + connection.getServiceName);

또는

answerForm.setAnswer("search", "[email protected]" + connection.getServiceName);

방법

: 서비스 이름은 로컬 호스트 인 경우 "JID"을 검색하는 경우, 당신은 몇 가지 옵션이 있습니다 ReportedData를 사용하는 방법 :

if (data != null) { 
     List<Row> rows = data.getRows(); 
     Iterator<Row> it = rows.iterator(); 
     while (it.hasNext()) { 
      Row row = it.next(); 
      List<String> values = row.getValues("jid"); 
      Iterator<String> iterator = values.iterator(); 
      if (iterator.hasNext()) { 
       String value = iterator.next(); 
       //Do what you want 
      } 
     } 
    } 
관련 문제