Saya terkejut tidak ada yang membicarakan hal ini, tetapi berhati-hatilah, meskipun android:onClick
XML tampaknya menjadi cara yang nyaman untuk menangani klik, setOnClickListener
penerapannya melakukan sesuatu selain menambahkan onClickListener
. Memang, itu membuat view property clickable
menjadi true.
Meskipun ini mungkin tidak menjadi masalah pada sebagian besar implementasi Android, menurut konstruktor ponsel, tombol selalu default ke clickable = true tetapi konstruktor lain pada beberapa model ponsel mungkin memiliki clickable = false default pada tampilan non Tombol.
Jadi pengaturan XML saja tidak cukup, Anda harus berpikir sepanjang waktu untuk menambahkan android:clickable="true"
non tombol, dan jika Anda memiliki perangkat di mana defaultnya dapat diklik = true dan Anda lupa sekali pun untuk meletakkan atribut XML ini, Anda tidak akan memperhatikan masalah saat runtime tetapi akan mendapatkan umpan balik di pasar saat itu akan berada di tangan pelanggan Anda!
Selain itu, kami tidak pernah bisa yakin tentang bagaimana proguard akan mengaburkan dan mengganti nama atribut XML dan metode kelas, jadi tidak 100% aman karena mereka tidak akan pernah memiliki bug suatu hari nanti.
Jadi jika Anda tidak pernah ingin mendapat masalah dan tidak pernah memikirkannya, lebih baik gunakan setOnClickListener
atau pustaka seperti ButterKnife dengan anotasi@OnClick(R.id.button)
onclick
karena Anda perlu memastikan bahwa setiap kelas mengimplementasikan metode itu. Ini mengasumsikan bahwa Anda menggunakan tata letak lebih dari sekali. Namun, jika Anda memiliki antarmuka java untuk memastikan metode tersebut ada di semua kelas yang menerapkannya, Anda tidak perlu khawatir.