Guida allo sviluppo

Local Navigation

Incapsulamento dei dati nella classe SearchableEntity

Il servizio Unified Search indicizza i metadati esposti da un oggetto SearchableEntity. Il servizio restituisce anche un oggetto SearchableEntity come contenuto di un risultato della ricerca. È necessario preparare i dati delle applicazioni per il servizio, incapsulandolo nella classe SearchableEntity.

  1. Importare le classi e le interfacce richieste.
    import net.rim.device.api.unifiedsearch.SearchField;
    import net.rim.device.api.unifiedsearch.SearchFieldCriteria;
    import net.rim.device.api.unifiedsearch.SearchFieldCriteriaList;
    import net.rim.device.api.unifiedsearch.entity.SearchableEntity;
    import net.rim.device.api.unifiedsearch.searchables.Searchable;
    
  2. Recuperare una matrice di oggetti SearchField da EntityBasedSearchable.
    SearchField[] searchfields = mySearchable.defineSupportedSearchFields();
  3. Creare un oggetto SearchFieldCriteria per ciascuna proprietà ricercabile. Nel seguente esempio di codice, l'oggetto dei dati delle applicazioni myObject dispone di un metodo getProperty() che restituisce una stringa per un indice dato. Ad esempio, se myObject conteneva la descrizione di un libro, gli indici 0, 1 e 2 di getProperty() potrebbero restituire il nome, il distributore e il numero di pagine del libro.
    int size = searchfields.length
    SearchFieldCriteria[] criteria = new SearchFieldCriteria[size];
    for (int i = size -1; i >= 0; --i) {
        criteria[i] = new SearchFieldCriteria(searchfields[i], new String[]{myObject.getProperty(i)});
    }
  4. Creare e compilare un oggetto SearchFieldCriteriaList per mantenere i criteri del campo di ricerca.
    SearchFieldCriteriaList _sfcl = new SearchFieldCriteriaList();
    for (int i = size -1; i >= 0; --i) {
        sfcl.addCriteria(criteria[i]);
    }
  5. Implementare getSearchCriteria() per restituire SearchFieldCriteriaList.
    pubic SearchFieldCriteriaList getSearchCriteria() {
        return _sfcl;
    }
  6. In getData(), restituire l'oggetto dei dati delle applicazioni. Per continuare con l'esempio del libro, questo metodo restituirebbe un oggetto che rappresenta il libro.
    public Object getData() {
        return myObject;
    }
  7. In getTitle(), assegnare un titolo a questa entità ricercabile. Il testo del titolo viene visualizzato nei risultati della ricerca. Per continuare con l'esempio del libro, myObject.getName() potrebbe restituire il nome di un libro.
    public String getTitle() {
        return myObject.getName();
    }
  8. In getSummary(), fornire un riepilogo dei dati in questa entità ricercabile. Il testo del riepilogo viene visualizzato nei risultati della ricerca. Continuando con l'esempio del libro, myObject.getDescription() potrebbe restituire una descrizione del libro.
    public String getSummary() {
        return myObject.getDescription();
    }
  9. Implementare getSearchable(). Recuperare l'oggetto EntityBasedSearchable creato dall'applicazione per gestire questo oggetto e restituirlo.
    public Searchable getSearchable() {
        return myPublisher.getSearchable();
    }
    
  10. Definire le opzioni da visualizzare sul menu contestuale quando l'utente BlackBerry fa clic sull'entità in uso in un elenco di risultati della ricerca. Per ulteriori informazioni, consultare la sezione in cui sono specificate le attività di gestione dei dati nei risultati della ricerca consentite agli utenti.
  11. Se si desidera che SearchableEntity visualizzi un'icona diversa da quella dell'applicazione in uso, specificare l'icona in getIcon(). Per ulteriori informazioni, consultare la sezione "Personalizzazione della modalità di visualizzazione dei dati nei risultati della ricerca".

Le informazioni sono state utili? Inviateci i vostri commenti.