Bearbeiten von Suchergebnissen

Das SearchResponse-Objekt, das Sie vom einheitlichen Suchdienst empfangen, strukturiert Ihre Suchergebnisse durch EntityBasedSearchable und die Suchfelder, die Ihren Stichwörtern entsprechen. Um auf die Daten zuzugreifen, müssen Sie dieses Objekt analysieren.
Vor Beginn erforderliche Aktion: Stellen Sie sicher, dass UnifiedSearchServices.search() ein SearchResponse-Objekt mit Daten zurückgegeben hat. Übergeben Sie das SearchResponse an parseResponse().
  1. Importieren Sie die erforderlichen Klassen und Schnittstellen.
    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. Erstellen Sie eine Instanzvariable, um suchbare Entitäten zu speichern und dem BlackBerry-Gerätebenutzer anzuzeigen.
    MySearchableEntity[] _myEntities;
  3. Implementieren Sie parseResponse. Diese Methode wird ausgeführt, nachdem Ihr Suchthread beendet wurde, also deklarieren Sie den SearchResponse-Parameter als final.
    private void parseResponse(final SearchResponse searchResult) {
  4. Konfigurieren Sie diese Methode so, dass sie ausgeführt wird, wenn Ihre Anwendung die Steuerung des Ereignisthreads wiedergewinnt.
        Application.getApplication().invokeLater(new Runnable() {
            public void run() {
  5. Rufen Sie aus den Suchergebnissen ein Hashtable-Objekt ab, das Suchfelder und suchbare Entitäten für Ihr EntityBasedSearchable-Objekt enthält.
                final Hashtable results = searchResult.getSearchResult(_searchable);
  6. Rufen Sie ein Enumeration-Objekt ab, das die Werte in der Hashtable enthält, und deklarieren Sie ein Array, um eindeutige Werte aus der Aufzählung zu speichern.
                Enumeration values = results.elements();
                Object[] searchableEntities;
  7. Initialisieren Sie Ihr Array von anzuzeigenden suchbaren Entitäten.
                _myEntities = new MySearchableEntity[0];
  8. Durchsuchen Sie die values-Aufzählung, und fügen Sie searchableEntities eindeutige Werte hinzu.
                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]);
                        }
                    }
                }
            }
        });
    } 
Das _myEntities-Array enthält einen Satz von eindeutigen MySearchableEntity-Objekten, die Sie verwenden können, um die Suchergebnisse für den Benutzer anzuzeigen.

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.