Saya sedang memprogram aplikasi untuk Android. Sekarang yang saya temukan adalah Anda tidak dapat menempatkan objek sumber daya, misalnya, gambar dalam folder drawable dan beri nama seperti "myTestImage.jpg". Ini akan memberi Anda kesalahan kompiler karena sintaks kasus unta tidak diizinkan, jadi Anda harus mengganti namanya seperti "my_test_image.jpg".
Tapi bagaimana dengan id yang Anda tentukan di file XML. Katakanlah Anda memiliki definisi berikut
<TextView android:id="@+id/myTextViewFirstname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Firstname" />
Ini adalah definisi yang valid, mengkompilasi dan berfungsi dengan baik di emulator Android saya meskipun - seperti yang Anda lihat - saya menentukan id dalam sintaks kasus unta.
Sekarang, sampel Android selalu menggunakan huruf kecil dan garis bawah. Apakah ini hanya konvensi penamaan untuk menggunakan huruf kecil dengan garis bawah untuk id atau mungkin itu menyebabkan masalah pada perangkat sebenarnya?
Terima kasih
AppBaseTheme
danAppTheme
.Jika Anda melihat ke
android.R.id.*
ladang, Anda akan melihat bahwa semuanya ada dalam kotak unta. Jadi jika id android ditulis dalam camel-case, saya rasa kita harus mengikuti konvensi ini :)sumber
widget_frame
[ developer.android.com/reference/android/R.id.html#widget_frame] juga diandroid.R.id.*
kolom. dalam bidang ini Google gunakan garis bawah bukan camel-case Jadi kesimpulan Anda tentang konvensi case-unta yang benar memilih untuk konvensi ID mungkin salahSaya rasa itu bagus jika kita menggunakan semua huruf kecil dengan garis bawah.
Lihat saja ini (Menambah apa yang telah dijawab Daniel)
// Small Caps and Underscores TextView tvUserName = (TextView) findViewById(R.id.tv_user_name);
menurut pengalaman saya sendiri saya cenderung sedikit bingung dengan konvensi camel case di xml karena ketika anda menautkannya ke Java yang juga menggunakan camel case (karena sudah standar) terlihat seperti doppleganger.
sumber
Saya pikir jika kita menggunakan konvensi garis bawah untuk id dalam file xml dan konvensi kasus unta untuk bidang kelas maka itu akan memberikan visibilitas yang lebih baik untuk setiap pengembang untuk membedakan antara id xml dan bidang kelas.
sumber
Jika Anda melihat beberapa contoh aplikasi Google seperti:
https://github.com/google/iosched
Mereka menggunakan garis bawah. Jadi .... mungkin begitulah seharusnya kita melakukannya?
sumber
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));
Pertama-tama, tidak ada standar pasti untuk menentukan mana yang lebih Layak tapi saya punya ide sendiri tentang itu. Ide saya masuk akal untuk menjaga XML id dan variabel java dengan nama yang sama persis dengan konvensi kasus unta.
Sangat mudah untuk menjangkau variabel dengan mencari proyek di sisi XML dan java.
definisi perpustakaan butterKnife
@BindView (R.id.infoTextView) TextViewFont infoTextView;
Lebih tepat untuk tetap seperti ini.
sumber
Nama file xml (yang digunakan dalam folder drawable) harus menggunakan huruf kecil semua dipisahkan oleh karakter garis bawah _ karena nama file dalam huruf besar tidak didukung dalam xml.
sumber
Jika compiler Android benar-benar melakukan apa yang Anda katakan dengan membatasi camel case (yang tampaknya agak aneh) maka Anda harus tetap berpegang pada konvensi yang telah ditetapkan.
Melawan arus hanya akan menyebabkan kebingungan yang tidak perlu. Jaga konsistensi di semua tempat jika memungkinkan.
sumber