Signo de interrogación (?) En atributos XML para Android

¿Alguien puede explicar el significado del signo de interrogación en los atributos de Android XML?

 

El signo de interrogación significa que es una referencia a un valor de recurso en el tema aplicado actualmente. Consulte la guía de desarrollo de Android de linuxtopia o la Guía de desarrollo de android.com para obtener más información al respecto.

\? escapa del signo de interrogación.

Los ? le permite consultar un atributo de estilo en lugar de un recurso específico codificado . Consulte “Referencia de atributos de estilo” en la Guía de desarrollo de Android para obtener más información.

Entonces, ¿cómo es esto realmente útil? Tiene más sentido cuando se consideran múltiples temas que contienen el mismo atributo de recurso personalizado .

Digamos que tiene temas relacionados con películas como MyThemeTransformers y MyThemeHobbit, y ambos tienen un atributo llamado movieIcon . Y ese atributo movieIcon apunta a un recurso @drawable diferente, digamos robot.png o hobbit.png, en cada definición de tema.

Puede hacer referencia a ” ? Attr / movieIcon ” en cualquier lugar donde el tema tenga efecto (como en una barra de herramientas o un diálogo o cualquier tipo de diseño de Vista), y automáticamente señalará el dibujante correcto cuando cambie de tema. No necesita ninguna lógica dependiente del tema para usar los diferentes objetos descartables. Simplemente define el atributo movieIcon para cada tema y el marco de Android se ocupa del rest.