Intereting Posts
Непоследовательное качество видео при кодировании кадров предварительного просмотра камеры с помощью MediaCodec на Xperia Z1 Мои изображения gif отображаются в эмуляторе, но отсутствуют на моем смартфоне SetOrientationHint вращает видео против часовой стрелки на некоторых фронтальных камерах телефонов (HTC) Создание кликабельного изображения в GridView на Android Как разместить кнопку плавающего действия исключительно на одном фрагменте только в макете вкладки Как настроить гравитацию и плотность размещения LinearLayout программно Курсор EditText становится невидимым в JellyBean Требуется аутентификация. Вам нужно войти в аккаунт Google Play. В биллинге в приложении Убейте другое приложение и очистите его данные Ошибка EGL при попытке запустить mapsActivity для Android-эмулятора Onclicklistener для кнопки в списке Перезапустить Android-машину Как я могу использовать Android KeyStore для безопасного хранения произвольных строк? Изменение уровня батареи эмулятора в Windows Как заставить Android Webview перекрашивать изменения DOM?

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

Я ищу способы уменьшить то, что я назвал бы «id-загрязнением» в своих приложениях. Из того, что я могу сказать, R.id является глобальным для приложения, поэтому в каждом Activity я обычно создаю уникальные значения идентификатора ресурса для элементов, даже если у меня есть много одного и того же. Например, если у меня есть три класса 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 

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

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

Я использую:

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

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