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

109

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

<TextView    
    style="?android:attr/windowTitleStyle"
    More attributes
/>
Теги:
android-styles

2 ответа

108
Лучший ответ

Значок вопроса означает ссылку на значение ресурса в применяемой в настоящее время теме. См. руководство по установке Android linuxtopia или android.com Dev Guide подробнее об этом.

\? ускоряет вопросительный знак.

  • 3
    Я думаю, что было бы лучше указать вашу вторую ссылку на: developer.android.com/guide/topics/resources/…
  • 9
    Статьи Руководства разработчика были реструктурированы, это новая прямая ссылка: developer.android.com/guide/topics/resources/…
Показать ещё 5 комментариев
24

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню