В настоящее время я разрабатываю приложение для Android. Теперь я обнаружил, что вы не можете поместить объекты ресурсов, скажем, изображение в папку с возможностью рисования, и назвать его как «myTestImage.jpg». Это приведет к ошибке компилятора, поскольку синтаксис верблюжьего регистра недопустим, поэтому вам придется переименовать его как «my_test_image.jpg».
Но как насчет идентификаторов, которые вы определяете в файле XML. Скажем, у вас есть следующее определение
<TextView android:id="@+id/myTextViewFirstname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Firstname" />
Это правильное определение, компилируется и отлично работает на моем эмуляторе Android, хотя, как вы видите, я указываю идентификатор в синтаксисе верблюжьего регистра.
Теперь в примерах Android всегда используются строчные буквы и подчеркивание. Это просто соглашение об именах для использования нижнего регистра с подчеркиванием для идентификаторов или это может вызвать проблемы на реальном устройстве?
Спасибо
AppBaseTheme
иAppTheme
.Если вы посмотрите на
android.R.id.*
поля, вы заметите, что все они в верблюжьем футляре. Так что, если идентификаторы android написаны в верблюжьем кейсе, я думаю, мы должны следовать этому соглашению :)источник
widget_frame
поле [ developer.android.com/reference/android/R.id.html#widget_frame] также вandroid.R.id.*
полях. в этом поле Google использует подчеркивание, а не верблюжий регистр. Итак, ваш вывод о соглашении с верблюжьим регистром - правильный выбор для соглашения об идентификаторе может быть ложнымЯ думаю, будет хорошо, если мы будем использовать все строчные буквы с подчеркиванием.
Просто посмотрите на это (добавление к тому, что ответил Даниэль)
// Small Caps and Underscores TextView tvUserName = (TextView) findViewById(R.id.tv_user_name);
по моему собственному опыту, я склонен немного запутаться в соглашении о случае верблюда в xml, потому что, когда вы связываете его с Java, который также использует случай верблюда (потому что это стандарт), он выглядит как доппельгангер.
источник
Я думаю, что если мы будем использовать соглашение о подчеркивании для идентификатора в файлах xml и соглашение о регистре верблюда для полей класса, это даст лучшую видимость для каждого разработчика, чтобы различать идентификаторы xml и поля класса.
источник
Если вы посмотрите на некоторые из примеров приложений Google, например:
https://github.com/google/iosched
Они используют подчеркивания. Итак ... может быть, именно так мы должны это делать?
источник
android:id="@+id/frag_account_button" frag_account_button = ((ListView)view.findViewById(R.id.frag_account_button)); android:id="@+id/fragAccountButton" fragAccountButton = ((ListView)view.findViewById(R.id.fragAccountButton));
Во-первых, не существует определенного стандарта, чтобы определить, какой из них более правильный, но у меня есть собственное представление об этом. Моя идея разумна - сохранить идентификатор XML и переменную java с одним и тем же именем в соответствии с соглашением о верблюжьем регистре.
Переменную легко найти, выполнив поиск проекта как на стороне XML, так и на стороне java.
Определение библиотеки butterKnife
@BindView (R.id.infoTextView) TextViewFont infoTextView;
Так будет лучше.
источник
Имена файлов xml (которые используются в папке с возможностью переноса) должны быть полностью строчными буквами, разделенными символом подчеркивания _, поскольку имена файлов с заглавной буквы не поддерживаются в xml.
источник
Если компилятор Android действительно делает то, что вы говорите, ограничивая случай верблюда (что кажется довольно странным), тогда вам следует придерживаться установленных соглашений.
Если идти против течения, это приведет только к ненужной путанице. По возможности старайтесь сохранять единообразие во всех местах.
источник