Могу ли я использовать один и тот же идентификатор в разных макетах в Android?
Я новичок в разработке Android. Можно ли использовать один и тот же идентификатор для изображений и TextViews
в другой Layout
XML-файлов?
когда eclipse автоматически перечисляет их для меня, он перечисляет все переменные макета из проекта, так что он столкнется? До сих пор я не заметил никаких проблем с использованием одного и того же идентификатора в разных макетах, но я обеспокоен в долгосрочной перспективе.
4 ответа:
рекомендуется использовать разные идентификаторы для разных макетов. В долгосрочной перспективе, когда у вас будет много планов и поэтому много идентификаторов будет очень сложно отличить их.
обычно я называю свои идентификаторы так:
layoutName_elementId
.он работает для меня, чтобы легко найти идентификатор, который я ищу, особенно при использовании автозаполнения (я знаю, на каком макете я работаю, но я действительно не знаю id; в этом случае с моей стратегией именования я только набираю имя макета, и он приносит все идентификаторы этого макета).
дополнительную информацию о макетах и идентификаторах можно найти здесь.
удачи в кодировании,
короткий ответ: Да, вы можете.
длинный ответ: Вы можете сделать это, потому что всякий раз, когда вы используете findViewById (), чтобы получить ссылку на часть вашего макета, метод ищет только это представление в текущем раздутом макете. Поэтому, даже если у вас есть другой вид с тем же идентификатором в другом макете, Android не будет искать его там.
согласно руководствам API разработчика:
идентификатор не обязательно должен быть уникальным во всем дереве, но он должен быть уникальный в той части дерева, которую вы ищете (что может часто будьте всем деревом, поэтому лучше всего быть полностью уникальным, когда вероятный.)
таким образом, короткий ответ заключается в том, что это не обязательно, но это хорошая практика, чтобы избежать возможных конфликтов.