В чем разница между @android: и? Android:

В чем разница между

android:color="@android:color/black" 

а также

 style="?android:attr/borderlessButtonStyle" 

В чем разница между @ и ? ?

Это один из тех вопросов, которые не подлежат обработке, или ogooglebar .

(Из этого ответа и его комментариев)

Префикс идентификатора с вопросительным знаком означает, что вы хотите получить доступ к атрибуту стиля, который определен в теме стиля, а не жестко кодировать атрибут, как описано в разделе «Атрибуты атрибутов стиля» .

Более конкретно ? Подразумевает дополнительный уровень косвенности. Подумайте об этом как о разыменовании атрибута темы, чтобы извлечь ресурс, на который он указывает, а не ссылаться на сам атрибут. Вы видите это с помощью андроида: attr / foo

@android: цвет / черный

Означает, что вы имеете в виду цвет, определенный в пространстве имен android. Это пространство имен является пространством имен структуры.

Поиск черного в этом файле: черный цвет в ракурсе

стиль = «андроид: атр / borderlessButtonStyle»

"? Android: attr / borderlessButtonStyle" просто означает "использовать значение, определяемое атрибутом, называемым borderlessButtonStyle в пространстве имен android." Этот атрибут и его значение являются частью платформы Android, пространства имен «android».

BorderlessButtonStyle в рамках


Отредактировано: из этого атрибута стиля привязки

Эта ссылка сообщит нам:

Например, вот как вы можете ссылаться на атрибут, чтобы установить цвет текста в соответствии с «основным» цветом текста системной темы :

 <EditText id="text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="?android:textColorSecondary" android:text="@string/hello_world" />