2011-12-09 9 views
15

me querían para definir el nombre de la cadena de mi intención en el archivo strings.xml, y luego unir esa cadena a un filtro de intención, como tan:¿Puedes definir un filtro de intención de Android usando un recurso de cadena?

<intent-filter > 
    <action android:name="@string/app_intent" > 
    </action> 

    <category android:name="android.intent.category.DEFAULT" > 
    </category> 
</intent-filter> 

Cuando he intentado esto, sin embargo, tengo varios errores sobre el sistema podría encontrar ninguna actividad para manejar mi intento. Intentaba mantener los valores (es decir, los nombres de intento) centralizados en lugar de codificados en el manifiesto y en el código. Tal como está, al menos esto me permite centralizarlo fuera del código de la aplicación, pero todavía lo tengo codificado en el manifiesto.

¿Es esto realmente imposible o hay alguna forma de hacerlo funcionar?

+3

Interesante pregunta. ¿Qué sucede si elimina el "" de alrededor de '@ string/app_intent'? Esperaría un error de compilación, pero podría valer la pena intentarlo. – Squonk

+0

Pregunta interesante. –

+0

Por curiosidad, ¿qué esperarías * de esto? Los recursos pueden variar según la configuración del dispositivo, desde la orientación horizontal hasta la vertical, el tamaño de la pantalla y el idioma actual. No le gustaría que la acción intencionada varíe con estos parámetros. – adamp

Respuesta

6

No es el problema con el filtro de intención, el problema es con android:name. El atributo android:name no está tomando el recurso de cadena para el nombre de la actividad también. el ejemplo <activity android:name="@string/app" android:label="@string/app_name"> no es válido en Android.

+0

Es ** específicamente ** el atributo 'android: name', o está limitado a los nodos de actividad? Debido a que el otro 'android: label' ** does ** toma los identificadores de recursos como tales, al menos en el nodo' application' del manifiesto. – eidylon

+0

Bueno, no estoy exactamente seguro de dónde radica la limitación, ya que algunos atributos en el DO manifiesto de hecho respaldan este método. Pero aparentemente este, por cualquier razón, no lo hace. – eidylon

Cuestiones relacionadas