2010-07-06 27 views
11

Estoy tratando de implementar recent suggestions y custom suggesions en la búsqueda global en la misma aplicación. Ambos usan la misma ruta en el proveedor, por lo que no parece que sea posible devolver resultados diferentes para ellos. Por ejemplo, solo búsquedas recientes de sugerencias y resultados de búsqueda reales en el cuadro de búsqueda rápida.¿Cómo manejar los resultados del cuadro de búsqueda rápida y las sugerencias recientes para la búsqueda?

¿Alguna idea de cómo hacer esto?

+0

Solo para estar seguro. ¿Desea mostrar sugerencias recientes cuando utiliza desde la búsqueda de aplicaciones, pero muestra resultados reales al usarlo desde el Cuadro de búsqueda rápida desde la pantalla de inicio? – Macarse

+0

Sí, exactamente. Eso es precisamente lo que quiero. – alexanderblom

Respuesta

1

Al mirar el documento searchable config, parece que debería poder usar diferentes valores de android: searchSuggestPath para desambiguar entre los dos.

0

Esto es posible, aunque necesita un poco de una solución. Todavía no he probado completamente esto en más de una plataforma, pero aquí está mi implementación: Collectionista SearchRecentSuggestionsContentProvider.java

Como las sugerencias más recientes son las más restrictivas, debe ajustar su proveedor con el proveedor necesario para las sugerencias personalizadas, y hacer un pase para las llamadas de sugerencias recientes.

Es importante que comprenda que no tiene que duplicar searchable.xml, ni ninguno de los bloques en el manifiesto. Usas la misma autoridad.

Además, las sugerencias recientes restringen el uso de android:searchSuggestSelection=" ?", por lo que tendrá que lidiar con eso en su proveedor para consultas de sugerencias personalizadas. Deseará usar android:searchSuggestPath probablemente, así que entienda que las consultas para sugerencias recientes llegan a ese Uri, y necesitan ser consultadas al Uri sin rutas.

Ambas sugerencias se mostrarán de la misma forma en que se deben devolver mediante el mismo cursor.

Si detecta algún error, sería tan amable de informarme de ello?

Cuestiones relacionadas