2012-05-02 2 views
0

Просто начните разработку с Android и подумайте, вместо того чтобы читать книгу, вебинар может быть лучше, потому что вебинар может также научить меня коротким путям и тому, как думает разработчик Android при написании кода, но теперь возникла проблемаCheckedTextView Идентификаторы атрибутов и checkMark

<CheckedTextView 
android:id="@android:id/text1" 
android:checkMark="?android:attr/listChoiseIndicatorMultiple" 
</> 

Я не понимаю, приведенный выше код до сих пор увидеть много различных определений ид некоторые из них за ресурсы и начать с @ ресурсов/имя, и некоторые из этих определений идентификаторов было как @ + ид/имя только для создавая новый идентификатор для компонента, но на этот раз он использует android: id/text1, и я не понимаю, почему он использует его таким образом.

Кроме того, вещь checkMark заставляет меня путать больше, что это такое? Android: attr/listChoiseIndicatorMultiple означает?

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

Большое спасибо заранее, и все комментарий будет оценен.

ответ

0

Ну, чтение документации всегда было полезно для меня:

Android Developer Site

XML Layout specific docs

@android:id/text1 просто формат, используемый, когда идентификатор определен ранее. Когда вы помещаете туда +, это означает, что инфраструктура должна создать идентификатор ресурса, если он еще не существует.

Это нормально использовать @ + id/thisid при определении нового представления в макете, а затем использовать @ id/thisid для ссылки на вышеупомянутое представление из другой части макета (скажем, в RelativeLayout, где вам нужно скажите одному виджету ниже другого).

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

0

@android:id/text1 в основном это используется при создании любого андроида компонент кнопки, расположение, TextViews и т.д., как

но когда вам нужен любой внешний компонент, который является общим для различных платформ, как и любой цвет, изображение и т.д., то вы можете объявить это как @resource/name.

Фактически нет ничего другого, просто помните, что в @android:id/text1, id будет просто работать как имя класса, будет содержать другие объекты, такие как textview, imageview или любые другие.

сейчас, если вы объявите @resource/name, то в этом случае вместо id имя класса будет ресурсом. фактически, когда вы будете использовать его в java, тогда эти (@android:id/text1) будут преобразованы в иерархию объектов.