Что означает «Android»: Prefix означает в модуле Android Framework-Res
-
27-10-2019 - |
Вопрос
Я скопирую этот код из файла 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:
Префикс в Android Framework?
Решение
Обнаружил, что это интересный вопрос, и попытался исследовать ответ .. это то, что я нашел ..
из: 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>
Пункт - определяет одно свойство для стиля. Должен быть ребенок элемента. Атрибуты: Имя Атрибут Ресурс. Необходимый. Название свойства стиля будет определен, при необходимости, с префиксом пакета (например, 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
, см. Учебник по просмотру списка.)