Может ли кто-нибудь объяснить знак вопроса в атрибутах Android XML?
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
Значок вопроса означает ссылку на значение ресурса в применяемой в настоящее время теме. См. руководство по установке Android linuxtopia или android.com Dev Guide подробнее об этом.
\?
ускоряет вопросительный знак.
Что? позволяет ссылаться на атрибут стиля вместо определенного жестко заданного ресурса. Подробнее см. "Ссылка на атрибуты стиля" в руководстве Android Dev.
Итак, как это действительно полезно? Это имеет наибольший смысл при рассмотрении нескольких тем, содержащих тот же атрибут пользовательских ресурсов.
Скажите, что у вас есть связанные с кино темы, такие как MyThemeTransformers и MyThemeHobbit, и оба имеют атрибут movieIcon. И этот атрибут movieIcon указывает на другой ресурс @drawable, скажем robot.png или hobbit.png, в каждом определении темы.
Вы можете ссылаться на "? attr/movieIcon" в любом месте темы (например, на панели инструментов или в диалоговом окне или в любом виде макета представления), и она автоматически укажет на правильную возможность рисования при переключении между темами. Для использования разных чертежей вам не нужна логика, зависящая от темы. Вы просто определяете атрибут movieIcon для каждой темы, а платформа Android заботится обо всех остальных.