Guide de développement

Local Navigation

Configurer et démarrer une recherche

Cette tâche explique comment démarrer une recherche limitée aux entités pouvant faire l'objet d'une recherche que votre application crée. La méthode UnifiedSearchServices.search() bloquant l'exécution des threads, l'objet doSearch() ci-dessous l'appelle dans un thread distinct.

  1. Importez les classes et les interfaces requises.
    import net.rim.device.api.unifiedsearch.*;
    import net.rim.device.api.unifiedsearch.searchables.*;
    import java.util.*;
    
  2. Créez une variable d'instance pour stocker une référence à l'objet UnifiedSearchServices.
    public class MySearchScreen() {
        UnifiedSearchServices _uss = UnifiedSearchServices.getInstance();
  3. Récupérez une référence à votre objet EntityBasedSearchable et attribuez-la à une variable d'instance. Lorsque vous récupérez une liste d'applications de recherche sur le terminal, définissez la valeur SearchableContentTypeConstants sur une valeur adaptée à votre recherche. Assurez-vous de réagir si votre objet EntityBasedSearchable est introuvable dans le vecteur deviceSearchables.
    MySearchable _searchable = null;
    Vector deviceSearchables = _uss.getDeviceSearchables(SearchableContentTypeConstants.CONTENT_TYPE_MEMO);
    for(int i = deviceSearchables.size() -1; i >=0; --i) {
        if(deviceSearchables.elementAt(i).getName().equals("name of your searchable")) {
            _searchable = (MySearchable) deviceSearchables.elementAt(i);
        }
    }
    // Do something if _searchable is still null
  4. Créez une méthode pour lancer la recherche. Acceptez le mot-clé de recherche comme un paramètre, où votre application spécifie les mots-clés de recherche que l'utilisateur de terminal BlackBerry fournit. Cette méthode appelant un nouveau thread, déclarez le paramètre Stringen tant que final.
    private void doSearch(final String keyword) {
  5. Créez l'objet Thread chargé d'exécuter votre recherche.
        Thread searchThread = new Thread(new Runnable() {
            public void run() {
                try {
  6. Démarrez la recherche et récupérez les résultats, le cas échéant. Si un résultat existe, envoyez-le à une autre méthode afin de l'analyser.
                    SearchResponse results = null;
                    results = _uss.search(keyword, _searchable);
                    if(results != null) {
                        parseResponse(results);
                    }
  7. Examinez toutes les erreurs détectées.
                } catch (Exception e) {
                    // Do something about the error
                }
  8. Exécutez la définition de Thread et lancez-la.
            }, "Search Thread");
        searchThread.start();
Après avoir terminé : Implémentez parseResponse. Pour plus d'informations, voir « Traiter les résultats de recherche ».
Sujet précédent: Recherche

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