Guide de développement

Local Navigation

Traiter les résultats de recherche

L'objet SearchResponse que vous recevez du service de recherche unifiée structure vos résultats de recherche selon la classe EntityBasedSearchable et les champs de recherche correspondant à vos mots-clés. Pour accéder aux données, vous devez analyser cet objet.
Avant de commencer : assurez-vous que UnifiedSearchServices.search() a renvoyé un objet SearchResponse avec des données. Transmettez SearchResponse à parseResponse().
  1. Importez les classes et les interfaces requises.
    import net.rim.device.api.unifiedsearch.entity.*;
    import net.rim.device.api.util.Arrays;
    import net.rim.device.api.system.Application;
    import java.util.*;
    
  2. Créez une variable d'instance pour stocker des entités pouvant faire l'objet d'une recherche à présenter à l'utilisateur de terminal BlackBerry.
    MySearchableEntity[] _myEntities;
  3. implémentez parseResponse. Cette méthode s'exécutant une fois votre thread de recherche terminé, déclarez le paramètre SearchResponse comme final.
    private void parseResponse(final SearchResponse searchResult) {
  4. Configurez cette méthode pour s'exécuter lorsque votre application regagne le contrôle du thread d'événement.
        Application.getApplication().invokeLater(new Runnable() {
            public void run() {
  5. À partir des résultats de la recherche, récupérez un objet Hashtable contenant des champs de recherche et des entités de recherche pour votre classe EntityBasedSearchable.
                final Hashtable results = searchResult.getSearchResult(_searchable);
  6. Récupérez un objet Enumeration contenant les valeurs dans l'objet Hashtable et déclarez un tableau pour stocker des valeurs uniques provenant de l'énumération.
                Enumeration values = results.elements();
                Object[] searchableEntities;
  7. Initialisez votre tableau d'entités pouvant faire l'objet d'une recherche à afficher.
                _myEntities = new MySearchableEntity[0];
  8. Itérez dans l'énumération values et ajoutez des valeurs uniques à 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]);
                        }
                    }
                }
            }
        });
    } 
Le tableau _myEntities contient une série d'objets MySearchableEntity uniques que vous pouvez utiliser pour afficher les résultats de la recherche à l'utilisateur.

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.