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