Лучшие практики для соглашений об именах ID в Android?

Я видел эту ссылку сначала, но она, похоже, не имела большой активности: Соглашение об именах для идентификаторов в Android

Мне любопытно, что лучше всего подходит для именования идентификаторов для различных элементов в Design View на Android Studio.

Сейчас я делаю такие вещи: Если это TextView с текстом "Добро пожаловать в мою программу", я назову его welcomeTextViewID. Если это кнопка, которая запускает некоторую подпрограмму под названием doStuff, я могу назвать ее doStuffButtonID.

Другими словами, я использую некое соглашение descriptor + datatype + ID.

Это считается плохой практикой? Я всегда слышал смешанные вещи при использовании дескрипторов внутри имени. Например, на языке, таком как С++, именовании строковой переменной nameString (поскольку, если вы измените тип данных позже, вам также нужно будет обновить имя).

Ответ 1

Оформить заказ → https://github.com/umesh0492/android-guidelines

Дальнейшее именование ID

Идентификаторы должны начинаться с префикса с имени элемента в нижнем регистре. Например:

+---------------------+
| Element   | Prefix  |
|-----------+---------+
| TextView  | text_   |
| ImageView | image_  |
| Button    | button_ |
| Menu      | menu_   |
+-----------+---------+

посмотреть пример:

<ImageView
    android:id="@+id/image_profile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Пример меню:

<menu>
    <item
        android:id="@+id/menu_done"
        android:title="Done" />

Лучшие рекомендации, которые я когда-либо видел, и я следую им.

Ответ 2

Я придерживаюсь этого типа соглашения об именах для идентификаторов в Android.

Пример:

Button : btSubmit
TextView : tvWelcome
EditText : etEmailId
CheckBox : cbHobbies
RadioButton : rbMale
LinearLayout : llPanel

Просто взглянув на идентификатор, вы можете определить свой компонент. и использовать тот же идентификатор в Java, чтобы избежать путаницы.

Ответ 3

Моя практика:

@+id/SummaryActivityName_SummaryViewType_Description

Например:

@+id/MyAct_Txv_UserName
@+id/MyAct_Grd_GridUsers
@+id/MyFrag_LstView_UserList

Таким способом гораздо лучше искать мнения о большом проекте. Я надеюсь, что это поможет.

Редактировать: Поместить то же имя идентификатора в имя переменной. Пример:

private TextView MyAct_Txv_UserName;

protected void onCreate(...){
    MyAct_Txv_UserName = (TextView) findViewById(R.id.MyAct_Txv_UserName);
    ...
}