Подтвердить что ты не робот

Вопросительный знак (?) В атрибутах XML для Android

Может ли кто-нибудь объяснить знак вопроса в атрибутах Android XML?

<TextView    
    style="?android:attr/windowTitleStyle"
    More attributes
/>
4b9b3361

Ответ 2

Что? позволяет ссылаться на атрибут стиля вместо определенного жестко заданного ресурса. Подробнее см. "Ссылка на атрибуты стиля" в руководстве Android Dev.

Итак, как это действительно полезно? Это имеет наибольший смысл при рассмотрении нескольких тем, содержащих тот же атрибут пользовательских ресурсов.

Скажите, что у вас есть связанные с кино темы, такие как MyThemeTransformers и MyThemeHobbit, и оба имеют атрибут movieIcon. И этот атрибут movieIcon указывает на другой ресурс @drawable, скажем robot.png или hobbit.png, в каждом определении темы.

Вы можете ссылаться на "? attr/movieIcon" в любом месте темы (например, на панели инструментов или в диалоговом окне или в любом виде макета представления), и она автоматически укажет на правильную возможность рисования при переключении между темами. Для использования разных чертежей вам не нужна логика, зависящая от темы. Вы просто определяете атрибут movieIcon для каждой темы, а платформа Android заботится обо всех остальных.