Определение собственных идентификаторов ресурсов для дальнейшего использования
Для выделения идентификатора либо создается новый идентификатор, либо используется уже созданный пакетом 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<
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.