Могу ли я использовать один и тот же идентификатор в разных форматах на Android?

Я новичок в разработке Android. Можно ли использовать один и тот же идентификатор для изображений и TextViews в разных XML файлах Layout?

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

Ответ 1

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

Я обычно называю свои идентификаторы такими: layoutName_elementId.

Для меня легко найти идентификатор, который я ищу, особенно при использовании автозаполнения (я знаю, на каком макете я работаю, но я действительно не знаю id, в этом случае с моим именем стратегии, я набираю только имя макета, и он включает все идентификаторы этого макета).

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

Счастливое кодирование,

Ответ 2

Короткий ответ: Да, вы можете.

Длинный ответ: вы можете это сделать, потому что всякий раз, когда вы используете findViewById(), чтобы получить ссылку на часть вашего макета, метод ищет только этот вид в раздутом макете. Поэтому, даже если у вас есть другое представление с тем же ID в другом макете, Android не будет искать его там.

Ответ 3

В соответствии с инструкциями API разработчика:

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

Итак, короткий ответ заключается в том, что он не является обязательным, но это хорошая практика, чтобы избежать возможных конфликтов.

Ответ 4

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

Но есть также некоторые случаи, когда вам нужно использовать один и тот же id например, если у вас есть какой-то реферат, и вы повторно используете несколько макетов.

Если в вашем проекте есть несколько views с одинаковыми id's и вам необходимо провести рефакторинг, сделайте это вручную, не используйте встроенную функцию IDE, измените id в целевом представлении внутри XML макета, а затем исправьте красную ошибку в макете.