Объем значений R.id - PullRequest
       0

Объем значений R.id

16 голосов
/ 15 сентября 2010

Я ищу способы уменьшить то, что я бы назвал «загрязнением идентификаторов» в своих приложениях. Из того, что я могу сказать, R.id является глобальным для приложения, поэтому в каждом действии я обычно создаю уникальные значения идентификатора ресурса для элементов, даже если у меня много таких же вещей. Например, если у меня есть три класса Activity, каждый с кнопкой сохранения и отмены, я бы определил шесть уникальных идентификаторов для R.id, например:

R.id.actOne_save
R.id.actOne_cancel
R.id.actTwo_save
R.id.actTwo_cancel
R.id.actThree_save
R.id.actThree_cancel

Это кажется мне ненужным, так как мне действительно нужно только два запуска для любого действия. Какие методы вы используете при создании идентификаторов ресурсов? Вы повторно используете их между активами? Это нормально, если идентификатор существует на двух Activites (может быть, один приостановлен и один передний план) одновременно? Я боюсь странного поведения, как нажатие кнопки, поражающее слишком много слушателей!

Ответы [ 3 ]

21 голосов
/ 15 сентября 2010

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

4 голосов
/ 15 сентября 2010

Я использую:

R.id.activityName_type_action

где тип может быть [btn | txtview | edittext | listview ...]

, а действие - это что-то вроде [save | del | accept | name | pin ...]

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

Например:

R.id.loginpin_btn_accept

R.id.loginpin_txtview_pin

1 голос
/ 15 сентября 2010

Другие ответы будут работать, но вы также можете сделать save_button.xml в вашей папке макета с <Button> в качестве корневого тега.Затем укажите идентификатор этого парня в тех местах, где он вам нужен.Это означает, что вам нужно определить только одну кнопку «сохранить» и использовать ее везде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...