2009-10-18 15 views
6

He intentado hacer que mi aplicación implemente la búsqueda rápida integrada, de forma similar a como se hace en la "búsqueda de aplicación/búsqueda/invocación" de ApiDemos. He intentado todo, desde intentar seguir diferentes ejemplos, hasta copiar el código exactamente como está en ApiDemos.botón de búsqueda de la aplicación para Android

Todo lo que he encontrado para el primero se ha referido a versiones anteriores del SDK, y simplemente no funcionó. En cuanto a las cosas que realmente puedo correr y ver trabajar en ApiDemos, he tratado de copiar el siguiente

com.example.android.apis.app.SearchInvoke.java 
com.example.android.apis.app.SearchQueryResults.java 
com.example.android.apis.app.SearchSuggestionSampleProvider.java 

res/layout/search_invoke.xml 
res/layout/search_query_results.xml 
res/values/arrays.xml 
res/values/strings.xml 
res/xml/searchable.xml 

... and everything under "Search Samples" in AndroidManifest.xml 

Esta copia me consigue una vista que se ve exactamente como la que yo estoy enfrentando al ejecutar ApiDemos, pero cuando hago clic en el botón de búsqueda, en el cuadro de búsqueda rápida, Android siempre abre una ventana del navegador con resultados de búsqueda de Google para la consulta dada. Simplemente no puedo encontrar el componente crítico en ApiDemos que le dice a Android que quiero usar mi propio código personalizado para manejar la solicitud de búsqueda.

Realmente agradecería algo de ayuda en este asunto. Tanto la documentación como otros recursos en línea parecen ser muy escasos en lo que respecta a esto.

Gracias.

Respuesta

10

Como referencia, cuatro meses (y Dios sabe cuántos intentos) más tarde, encontré la parte de la documentación que me perdí, que tenía todo el cuadro de búsqueda comportarse encendió los resultados de búsqueda del navegador, en lugar de pasándolos a mi propia actividad. Todo se reduce a un pequeño aviso encontró here:

Tenga en cuenta que todas las cadenas visibles para el usuario deben ser proporcionados en forma de "@string" referencias. Las cadenas codificadas, que no se pueden localizar, no funcionarán correctamente en los metadatos de búsqueda.

+0

Wow, gracias. Eso es exactamente lo que solucionó mi problema: no aceptaba valores de cadena codificados mientras estaba probando. Simplemente lo convertí para usar refs en strings.xml y no funciona. – DustinB

+0

@David Muchas gracias. Estuve atrapado por más de un día solo porque tenía cadenas codificadas. Gracias una vez más. :) – FireAndIce

1

Intente leer this primero. Si eso no ayuda, puede intentar mirar el search example de uno de mis libros; ese ejemplo se integra con el Cuadro de búsqueda rápida y quizás le proporcione más pistas.

+0

Hola. Gracias por su comentario, pero ni los recursos que ha vinculado ni el código de ejemplo que ha proporcionado parecen funcionar para mí. El botón de búsqueda invoca el ui de búsqueda global, que es lo que quiero, pero escribir cualquier cosa en él solo arroja las sugerencias predeterminadas, y al presionar el botón de búsqueda siempre se abre una vista web. Lo que quiero es capturar el clic del botón de búsqueda y generar mi propia vista de resultados. Ni siquiera necesito un proveedor de sugerencias, si puedo hacer funcionar la búsqueda. Sin duda, esto debería ser bastante factible ...? –

+0

No, no es factible, salvo modificar el firmware o quizás escribir una aplicación de reemplazo en el hogar con un cuadro de búsqueda que se comporte de la manera que desee. – CommonsWare

+0

Entonces, ¿no es esto lo que, digamos, Market está haciendo? O la demostración de Search Invoke en ApiDemos. Ambos son ejemplos de búsquedas que aparecen al hacer clic en el botón de búsqueda del dispositivo, y cuando se hace clic en la vista que aparece, generan su propia vista de resultados, en lugar de abrir una vista web con resultados de búsqueda de Google normales ... –

0

estaba mal antes de ... la documentación del SDK tiene una explicación thurough en la documentación para SearchManager que le sugiero que tome un vistazo a. Además, como se mencionó en CommonsWare, el blog entry también es un buen recurso.

Cuestiones relacionadas