Bagaimana saya bisa memicu acara klik tombol menggunakan kode di Android? Saya ingin memicu klik tombol secara terprogram ketika beberapa peristiwa lain terjadi.
Masalah yang sama yang saya hadapi
public void onDateSelectedButtonClick(View v){
/*Something Alarm Management
http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
copied code from this site*/
}
Kode tombol:
<Button
android:onClick="onDateSelectedButtonClick"
android:text="Set notification for this date" />
Tapi saya ingin memanggil fungsi itu OnLoadLayout tanpa OnClickEvent
Jawaban:
ada cara yang lebih baik.
http://developer.android.com/reference/android/view/View.html#performClick ()
ini harus menjawab semua masalah Anda. setiap View mewarisi fungsi ini, termasuk Button, Spinner, dll.
Hanya untuk memperjelas, Lihat tidak memiliki metode performClick () statis. Anda harus memanggil performClick () pada instance View. Misalnya, Anda tidak bisa menelepon begitu saja
Sebagai gantinya, lakukan sesuatu seperti:
sumber
Hanya untuk mengklarifikasi apa yang dikatakan moonlightcheese: Untuk memicu peristiwa klik tombol melalui kode di Android, berikan yang berikut:
sumber
kamu bisa melakukannya dengan cara ini
sumber
Android
callOnClick()
( ditambahkan dalam API 15 ) terkadang bisa menjadi pilihan yang lebih baik dalam pengalaman saya daripadaperformClick()
. Jika pengguna memiliki suara pilihan yang diaktifkan, makaperformClick()
dapat menyebabkan pengguna mendengar dua suara pemilihan kontinu yang agak berlapis satu sama lain yang dapat menggelegar. (Satu suara pilihan untuk klik tombol pertama pengguna, lalu satu lagi untuk tombol lainOnClickListener
yang Anda panggil melalui kode.)sumber
Cukup tulis baris kode sederhana ini: -
di mana tombol adalah variabel referensi dari kelas Tombol dan didefinisikan sebagai berikut: -
Itu dia.
sumber
Dimulai dengan API15, Anda dapat menggunakan juga
callOnClick()
yang secara langsung memanggil tampilan terlampir OnClickListener. Tidak seperti performClick (), ini hanya memanggil pendengar, dan tidak melakukan tindakan mengklik terkait seperti melaporkan peristiwa aksesibilitas.sumber
Jika Anda tidak menggunakan
sender
argumen, mengapa tidak refactor implementasi penangan tombol untuk memisahkan fungsi, dan memanggilnya dari mana pun Anda inginkan (dari penangan tombol dan dari tempat lain).Bagaimanapun, ini adalah desain yang lebih baik dan lebih bersih - kode yang perlu dipanggil pada handler tombol DAN dari beberapa tempat lain layak untuk di refactored untuk fungsinya sendiri. Plus itu akan membantu Anda memisahkan penanganan UI dari kode logika aplikasi. Anda juga akan memiliki nama yang bagus untuk fungsinya, bukan hanya onDateSelectedButtonClick ().
sumber