Определение собственных идентификаторов ресурсов для дальнейшего использования

Определение собственных идентификаторов ресурсов для дальнейшего использования

Для выделения идентификатора либо создается новый идентификатор, либо используется уже созданный пакетом Android. Однако идентификаторы можно создавать заранее, а затем применять их в своих пакетах. Опять-таки, это является результатом того факта, что идентификаторы — это ресурсы. А если они являются ресурсами, то должны иметь возможность предварительного определения с целью доступа в дальнейшем.

Строка >TextView android:id="@+id/text"< в листинге 3.7 указывает, что если идентификатор text существует, то будет задействован он, а если не существует, будет создан новый. А когда идентификатор вроде text может уже существовать в файле R.java для многократного использования?

Возможно, вы склонны к тому, чтобы вставить константу вроде R.id.text в файл R.java, однако этот файл не редактируемый. Но даже если бы он был редактируемым, он все равно повторно генерируется, когда что-либо изменяется, добавляется или удаляется в подкаталоге /res/.

Решение состоит в применении дескриптора ресурса item для определения идентификатора без его назначения какому-то конкретному ресурсу. В листинге 3.8 показан пример.

Листинг 3.8. Предварительное определение идентификатора

>resources<

>item type="id" name="text"/< >/resources<

Книга l.indb 74

11.05.2012 21:46:10

Глава 3. Ресурсы Android 75

Параметр type соответствует типу ресурса — в данном случае id. После определения id определение View в листинге 3.9 будет работать.

Листинг 3.9. Повторное использование предварительно определенного идентификатора

>TextView android:id="@id/text"<

>/TextView<

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий