Elaborazione dei risultati della ricerca
L'oggetto
SearchResponse ricevuto dall'utente da parte del servizio Unified Search organizza i risultati della ricerca di
EntityBasedSearchable e i campi di ricerca che sono risultati corrispondenti alle parole chiave dell'utente. Per accedere ai dati, è necessario analizzare questo oggetto.
Prima di iniziare: Assicurarsi che UnifiedSearchServices.search() abbia restituito un oggetto SearchResponse con dati. Passare SearchResponse a parseResponse().
- Importare le classi e le interfacce richieste.
import net.rim.device.api.unifiedsearch.entity.*;
import net.rim.device.api.util.Arrays;
import net.rim.device.api.system.Application;
import java.util.*;
- Creare una variabile di istanza per memorizzare le entità ricercabili, visualizzabili dall'utente BlackBerry.
MySearchableEntity[] _myEntities;
- Implementare parseResponse. Questo metodo viene eseguito al termine del thread di ricerca, pertanto dichiarare il parametro SearchResponse come final.
private void parseResponse(final SearchResponse searchResult) {
- Configurare questo metodo per l'esecuzione quando l'applicazione recupera il controllo del thread evento.
Application.getApplication().invokeLater(new Runnable() {
public void run() {
- Dai risultati della ricerca, recuperare un oggetto Hashtable contenente campi di ricerca ed entità ricercabili per EntityBasedSearchable.
final Hashtable results = searchResult.getSearchResult(_searchable);
- Recuperare un oggetto Enumeration contenente i valori in Hashtable e dichiarare una matrice per memorizzare valori univoci dall'enumerazione.
Enumeration values = results.elements();
Object[] searchableEntities;
- Inizializzare la matrice delle entità ricercabili da visualizzare.
_myEntities = new MySearchableEntity[0];
- Scorrere l'enumerazione values e aggiungere valori univoci a searchableEntities.
while(values.hasMoreElements()) {
searchableEntities = (Object[]) values.nextElement();
for(int i = searchableEntities - 1; i >= 0; --i) {
if(!Arrays.contains(_myEntities, searchableEntities[i]) {
Arrays.add(_myEntities, searchableEntities[i]);
}
}
}
}
});
}
La matrice
_myEntities contiene una matrice di oggetti
MySearchableEntity univoci che è possibile utilizzare per consentire all'utente di visualizzare i risultati della ricerca.
Le informazioni sono state utili? Inviateci i vostri commenti.