2010-04-28 19 views

Respuesta

110

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

\? se sale del signo de interrogación.

+3

Creo que sería mejor señalar su segundo enlace a: http://developer.android.com/guide/topics/resources/resources-i18n.html#ReferencesToThemeAttributes – Casebash

+8

Los artículos de Dev Guide se han reestructurado, este es el nuevo enlace directo: http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes – mernen

+1

Creo que es más apropiado decirlo? se usa para "Referenciar atributos de estilo" en lugar de "referencia a un valor de recurso en el tema aplicado actualmente". De acuerdo con el enlace de la guía de desarrollo de android.com que proporcionó. –

24

¿El? le permite consultar un atributo de estilo en lugar de un recurso codificado específico. Consulte "Referencing style attributes" en la Guía de desarrollo de Android para obtener más detalles.

Entonces, ¿cómo es esto realmente útil? Tiene más sentido cuando se consideran temas múltiples 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.

Se puede hacer referencia a "? Attr/movieIcon" en cualquier parte del tema es en efecto (como en una barra de herramientas o de diálogo o cualquier tipo de disposición de vista), y se apuntará automáticamente a la dibujable correcta al cambiar entre temas. 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 resto.

Cuestiones relacionadas