Что такое префикс "android:" в модуле android framework-res

Я копирую этот код из файла styles.xml в модуле framework-res

<style name="Theme">

    <item name="colorForeground">@android:color/bright_foreground_dark</item>
    <item name="colorForegroundInverse">@android:color/bright_foreground_dark_inverse</item>
    <item name="colorBackground">@android:color/background_dark</item>

,

<style name="Theme.Black">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:colorBackground">@android:color/black</item>
</style>

Как видите, все они имеют имя атрибута, значение которого равно windowBackground. Но формар имеет android: а последний нет. Действительно ли необходимо написать android: приставка в андроид фреймворке?

2 ответа

Решение

Нашел это интересным вопросом и попытался исследовать, чтобы найти ответ. Это то, что я нашел..

от: http://developer.android.com/guide/topics/resources/style-resource.html

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style
        name="style_name"
        parent="@[package:]style/style_to_inherit">
        <item
            name="[package:]style_property_name"
            >style_value</item>
    </style>
</resources>

item - определяет одно свойство для стиля. Должен быть дочерним элементом. Атрибуты: имя Атрибут ресурса. Необходимые. Имя свойства стиля, которое нужно определить, с префиксом пакета, если необходимо (например, android: textColor).

от: http://developer.android.com/guide/topics/manifest/manifest-intro.html

Значения ресурсов Некоторые атрибуты имеют значения, которые могут отображаться для пользователей - например, метка и значок для действия. Значения этих атрибутов должны быть локализованы и, следовательно, установлены из ресурса или темы. Значения ресурса выражаются в следующем формате,

@[package:]type:name

где имя пакета может быть опущено, если ресурс находится в том же пакете, что и приложение, тип - это тип ресурса - такой как "строка" или "рисуемый" - и имя - это имя, которое идентифицирует конкретный ресурс. Например: значения из темы выражаются аналогичным образом, но с начальным '?' скорее, чем '@':

?[package:]type:name

И, наконец, я попытался дать атрибуты без android:, и он выдал исключение, хотя и успешно скомпилирован.

Доступ к ресурсам платформы

Android содержит ряд стандартных ресурсов, таких как стили, темы и макеты. Чтобы получить доступ к этим ресурсам, укажите ссылку на ресурс с именем пакета Android. Например, Android предоставляет ресурс макета, который можно использовать для элементов списка в ListAdapter:

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray));

В этом примере simple_list_item_1 - это ресурс макета, определенный платформой для элементов в ListView, Вы можете использовать это вместо создания собственного макета для элементов списка. (Подробнее об использовании ListViewсм. руководство по просмотру списка.)

Другие вопросы по тегам