Einkapseln von Daten in der SearchableEntity-Klasse

Der einheitliche Suchdienst indiziert die Metadaten, die von einem SearchableEntity-Objekt zur Verfügung gestellt werden. Der Dienst gibt außerdem eine SearchableEntity als Inhalt eines Suchergebnisses zurück. Sie müssen Ihre Anwendungsdaten für den Dienst durch Einkapseln dieser in Ihrer SearchableEntity-Klasse vorbereiten.

  1. Importieren Sie die erforderlichen Klassen und Schnittstellen.
    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. Rufen Sie ein Array von SearchField-Objekten aus EntityBasedSearchable ab.
    SearchField[] searchfields = mySearchable.defineSupportedSearchFields();
  3. Erstellen Sie ein SearchFieldCriteria-Objekt für jede Ihrer suchbaren Eigenschaften. Im folgenden Codebeispiel weist das Anwendungsdatenobjekt myObject eine getProperty()-Methode auf, die eine Zeichenfolge für einen gegebenen Index zurückgibt. Wenn zum Beispiel mit myObject ein Buch beschrieben wird, könnten die Indizes 0, 1 und 2 von getProperty() den Namen, den Herausgeber und die Anzahl von Seiten im Buch zurückgeben.
    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. Erstellen und füllen Sie ein SearchFieldCriteriaList-Objekt, um die Suchfeldkriterien aufzunehmen.
    SearchFieldCriteriaList _sfcl = new SearchFieldCriteriaList();
    for (int i = size -1; i >= 0; --i) {
        sfcl.addCriteria(criteria[i]);
    }
  5. Implementieren Sie getSearchCriteria(), um SearchFieldCriteriaList zurückzugeben.
    pubic SearchFieldCriteriaList getSearchCriteria() {
        return _sfcl;
    }
  6. Geben Sie Ihr Anwendungsdatenobjekt unter getData() zurück. Um mit dem Buchbeispiel fortzusetzen würde diese Methode ein Objekt zurückgeben, das das Buch darstellt.
    public Object getData() {
        return myObject;
    }
  7. Weisen Sie dieser suchbaren Entität in getTitle() einen Titel zu. Der Titeltext wird in den Suchergebnissen angezeigt. Um beim Buchbeispiel zu bleiben: myObject.getName() könnte den Namen eines Buchs zurückgeben.
    public String getTitle() {
        return myObject.getName();
    }
  8. Stellen Sie unter getSummary() eine Zusammenfassung der Daten in dieser suchbaren Entität bereit. Der Zusammenfassungstext wird in den Suchergebnissen angezeigt. Um beim Buchbeispiel zu bleiben: myObject.getDescription() könnte eine Beschreibung des Buchs zurückgeben.
    public String getSummary() {
        return myObject.getDescription();
    }
  9. Implementieren Sie getSearchable(). Rufen Sie das von Ihrer Anwendung erstellte EntityBasedSearchable ab, um dieses Objekt zu verwalten, und geben Sie es zurück.
    public Searchable getSearchable() {
        return myPublisher.getSearchable();
    }
    
  10. Definieren Sie, welche Optionen im Kontextmenü angezeigt werden sollen, wenn ein BlackBerry-Gerätebenutzer in einer Liste von Suchergebnissen auf Ihre Entität klickt. Weitere Informationen finden Sie unter "Festlegen, was Benutzer mit Ihren Daten in Suchergebnissen tun können".
  11. Wenn dieses SearchableEntity ein anderes Symbol als das Anwendungssymbol anzeigen soll, stellen Sie das Symbol in getIcon() bereit. Weitere Informationen finden Sie unter "Anpassen der Anzeige Ihrer Daten in Suchergebnissen".

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.