Guida allo sviluppo

Local Navigation

Configurazione e avvio di una ricerca

Questa attività illustra come avviare una ricerca limitata alle entità ricercabili create dall'applicazione. Il metodo UnifiedSearchServices.search() blocca l'esecuzione del thread, quindi doSearch() qui di seguito lo richiama in un thread separato.

  1. Importare le classi e le interfacce richieste.
    import net.rim.device.api.unifiedsearch.*;
    import net.rim.device.api.unifiedsearch.searchables.*;
    import java.util.*;
    
  2. Creare una variabile di istanza per memorizzare un riferimento all'oggetto UnifiedSearchServices.
    public class MySearchScreen() {
        UnifiedSearchServices _uss = UnifiedSearchServices.getInstance();
  3. Recuperare un riferimento all'oggetto EntityBasedSearchable e assegnarlo a una variabile di istanza. Quando si recupera un elenco di applicazioni ricercabili sul dispositivo, impostare SearchableContentTypeConstants sul valore appropriato per la ricerca desiderata. Accertarsi di eseguire l'operazione appropriata se EntityBasedSearchable non viene rilevato nel vettore 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. Creare un metodo per avviare la ricerca. Accettare la parola chiave per la ricerca come parametro, in cui l'applicazione specifica le parole chiave per la ricerca fornite dall'utente BlackBerry. Questo metodo richiama un nuovo thread, pertanto dichiarare il parametro String come final.
    private void doSearch(final String keyword) {
  5. Creare l'oggetto Thread che eseguirà la ricerca.
        Thread searchThread = new Thread(new Runnable() {
            public void run() {
                try {
  6. Avviare la ricerca e recuperare i risultati, se disponibili. Se si ottiene un risultato, inviarlo a un altro metodo per essere analizzato.
                    SearchResponse results = null;
                    results = _uss.search(keyword, _searchable);
                    if(results != null) {
                        parseResponse(results);
                    }
  7. Individuare gli errori eventualmente generati.
                } catch (Exception e) {
                    // Do something about the error
                }
  8. Completare la definizione di Thread ed eseguirlo.
            }, "Search Thread");
        searchThread.start();
Al termine: Implementare parseResponse. Per ulteriori informazioni, consultare la sezione "Elaborazione dei risultati della ricerca".
Argomento precedente: Ricerca

Le informazioni sono state utili? Inviateci i vostri commenti.