Guía de desarrollo

Local Navigation

Encapsular datos en la clase SearchableEntity

El servicio de búsqueda unificada indexa los metadatos expuestos por un objeto SearchableEntity. El servicio también devuelve SearchableEntity como el contenido de un resultado de la búsqueda. Debe preparar los datos de su aplicación para el servicio encapsulándolos en su clase SearchableEntity.

  1. Importe las clases y las interfaces necesarias.
    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. Recupere una matriz de objetos SearchField de EntityBasedSearchable.
    SearchField[] searchfields = mySearchable.defineSupportedSearchFields();
  3. Cree un objeto SearchFieldCriteria para cada una de sus propiedades que se pueden buscar. En el ejemplo de código siguiente, el objeto de datos de aplicaciones myObject tiene un método getProperty() que devuelve una cadena para un índice dado. Por ejemplo, si myObject describió un libro, los índices 0, 1 y 2 de getProperty() podrían devolver el nombre, el editor y el número de páginas 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. Cree y rellene un objeto SearchFieldCriteriaList para mantener sus criterios de campo de búsqueda.
    SearchFieldCriteriaList _sfcl = new SearchFieldCriteriaList();
    for (int i = size -1; i >= 0; --i) {
        sfcl.addCriteria(criteria[i]);
    }
  5. Implemente getSearchCriteria() para devolver SearchFieldCriteriaList.
    pubic SearchFieldCriteriaList getSearchCriteria() {
        return _sfcl;
    }
  6. En getData(), devuelva su objeto de datos de aplicaciones. Continuando con el ejemplo del libro, este método devolvería un objeto que representa al libro.
    public Object getData() {
        return myObject;
    }
  7. En getTitle(), asigne un título a esta entidad que se puede buscar. El texto del título aparece en los resultados de la búsqueda. Para continuar con el ejemplo del libro, myObject.getName() podría devolver el nombre de un libro.
    public String getTitle() {
        return myObject.getName();
    }
  8. En getSummary() proporcione un resumen de los datos en esta entidad que se puede buscar. El texto del resumen aparece en los resultados de la búsqueda. Continuando con el ejemplo del libro, myObject.getDescription() podría devolver una descripción del libro.
    public String getSummary() {
        return myObject.getDescription();
    }
  9. Implemente getSearchable(). Recupere el EntityBasedSearchable que su aplicación crea para administrar este objeto, y devuélvalo.
    public Searchable getSearchable() {
        return myPublisher.getSearchable();
    }
    
  10. Defina qué opciones deben aparecer en el menú contextual cuando un usuario del dispositivo BlackBerry haga clic en su entidad desde una lista de resultados de la búsqueda. Para obtener más información, consulte "Especifique lo que pueden hacer los usuarios con sus datos en los resultados de la búsqueda".
  11. Si desea que SearchableEntity muestre un icono diferente al de su icono de aplicación, proporcione el icono en getIcon(). Para obtener más información, consulte "Personalización de la apariencia de sus datos en los resultados de la búsqueda".

¿Le ha resultado útil esta información? Envíenos sus comentarios.