Идентификатор ресурса Android - PullRequest
10 голосов
/ 04 августа 2011

Должны ли идентификаторы ресурсов для представлений в макетах XML быть уникальными для всех макетов?

Например, я работаю над небольшим приложением менеджера рецептов.У меня есть файл макета для добавления нового ингредиента.В этом макете у меня есть EditText для ингредиента, который я хотел бы назвать "edt_name".Но я боюсь, что это имя слишком общее;например, у меня также может быть EditText для названия рецепта, имени процедуры приготовления и т. д. в других файлах макета XML.

Однако я также не хочу делать ярлыки более сложными, чем необходимо.Я хотел бы избежать вызова вышеупомянутого EditText "edt_name_new_ingredient", если бы мог.

Мне интересно, как разработчики организовывают свои ресурсы в целом.Насколько я знаю, Android не поддерживает подкаталоги для ресурсов, поэтому схемы именования могут быть очень запутанными.

Ответы [ 2 ]

6 голосов
/ 04 августа 2011

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

2 голосов
/ 04 августа 2011

Идентификаторы ресурсов находятся в пространстве имен внутри пакета.Когда вы обращаетесь к ресурсу (например, в XML), имя пакета неявно устанавливается на текущее.Вы можете иметь другие файлы ресурсов в другом пакете и ссылаться на те, которые находятся в вашем коде или XML (так вы получаете доступ к ресурсам платформы, которые поставляются с SDK).

Аналогично в коде вы можете получить доступ к другомуR класса пакета и использовать его ресурсы, но все те, кто находится в одном пакете, должны иметь уникальные имена.

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

...