Это общая проблема для любого языка или фреймворка, но если вы избегаете зарезервированных слов, у вас должно быть все в порядке, если вы помните, что вы называете вещи.
Я заметил, что Android устанавливает ограничениена именах файлов ресурсов XML, но подчеркивания, кажется, в порядке.ADT на самом деле заявляет
Имена файловых ресурсов должны содержать только строчные буквы az, 0-9 или _.
Вначале меня смутило отсутствиепространства имен с идентификаторами, но это, как правило, можно игнорировать, если у вас два идентификатора. Один и тот же Android будет повторно использовать определенный идентификатор.
Для идентификаторов я использую трехбуквенный квалификатор, за которым следует то, на что он ссылается в верблюжьей нотации, например, lblFooдля статической текстовой метки (или textview), txtFoo для редактируемого текстового поля (edittext в Android).Поначалу это может показаться странным, но я использую его с VB6, и эти элементы управления назывались label и textbox.
Вот еще несколько примеров, которые я обычно использую:
- btnFoo - кнопка
- pwdFoo - пароль
- lstFoo - список
- clrFoo - цвет
- tblFoo - таблица
- colFoo - столбец
- rowFoo - строка
- imgFoo - изображение
- dimFoo - размерность
- padFoo - отступ
- mrgFoo - поле
Iиспользуйте то же самое в коде внутри java-файла, так что мне не нужно об этом думать, пакетная область позволит это весьма счастливо:
Button btnFoo = (Button)findViewById(R.id.btnFoo);
Вы можете, если вы предпочитаете добавить небольшой интервал, используя подчеркивание, т.е.btn_foo ... Я бы, наверное, сделал бы это, если бы мог избавиться от старых привычек.
Есть те, кто может утверждать, что их сокращение может быть не идеальным, и пуристы утверждают, что следует использовать полное имя, но когдавы называете десятки элементов управления и переключаетесь между различными системами иrameworks, полные имена теряют свое значение, я использовал их более десяти лет в VB, C ++, ASP.NET, WinForms в C # и VB.NET, Android и Python.Мне никогда не нужно помнить, называет ли это Android текстовым полем или текстом редактирования.Все, что мне нужно знать, - это то, что lblFoo - это статическая метка, а txtFoo - это то, во что вводит пользователь.
И последнее замечание: независимо от того, какое соглашение вы решаете в отношении важных вещей, это правильное и последовательное именование элементов управления,чтобы вы не боролись с расплывчатыми идентификаторами по умолчанию, например TextView5 или смесью различных соглашений