El cuadro de diálogo de búsqueda de Android no se abre al presionar un botón/acción

Necesito un segundo ojo en esto. He seguido las instrucciones básicas. aquí para configurar la búsqueda en la aplicación en la que estoy trabajando, pero no puedo hacer que aparezca el cuadro de diálogo de búsqueda, tanto con el botón de búsqueda del dispositivo como con mi acción de búsqueda en la barra de acción.

En lo que respecta a la barra de acción, he confirmado que se llama a onSearchRequested en la actividad cuando se presiona la acción. Todos los recursos a los que se hace referencia en estos archivos existen: la aplicación se ejecuta sin errores.

Mi archivo de búsqueda.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/search_label"
        android:hint="@string/search_hint" >
    </searchable>

La definición de actividad de mi actividad de manejo de búsqueda en AndroidManifest.xml:

    <activity android:name=".SearchActivity">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data android:name="android.app.searchable"
    android:resource="@xml/searchable"/>
    </activity>

Para cada actividad en la que me gustaría buscar, he añadido:

    <meta-data android:name="android.app.default_searchable"
    android:value=".SearchActivity" />

Cuando presiono cualquiera de los botones mencionados anteriormente, no pasa nada. Tampoco pasa nada en logcat. Dado que se está llamando a onSearchRequested, sospecho que hay algún problema con mi configuración, pero no he podido encontrarlo hasta ahora.

En caso de que sea importante, puedo señalar que mi SearchActivity extiende RoboFragmentActivity.

preguntado el 04 de julio de 12 a las 10:07

1 Respuestas

Bien, lo descubrí, y he hecho un poco el ridículo. Mira, el proyecto en el que estoy trabajando tiene una aplicación central de Android que admite especializaciones basadas en ella. Estoy agregando búsqueda al primero, pero por supuesto es necesario modificar AndroidManifest.xml en el módulo dependiente, ya que es el que importa cuando se implementa ese módulo. Modificar el manifiesto de los módulos principales no ayuda en nada.

Y yo, por supuesto, estaba agregando estos bits a AndroidManifest.xml en el módulo central, no en el módulo destinado a la implementación, lo que significaba que en realidad no estaba definiendo nada. No me extraña que no pasara nada.

Respondido 04 Jul 12, 15:07

No estoy seguro de si eliminar o no esta pregunta. De hecho, el problema real era mucho más general y básico que la pregunta en sí, por lo que es un poco engañoso. Por otro lado, otros podrían quedarse atrapados en esta rutina. - Alex A.

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.