Jawaban:
Dari Pendengar Acara :
onLongClick () - Ini mengembalikan boolean untuk menunjukkan apakah Anda telah menggunakan acara dan tidak boleh dibawa lebih jauh. Artinya, mengembalikan true untuk menunjukkan bahwa Anda telah menangani kejadian tersebut dan harus berhenti di sini; return false jika Anda belum menanganinya dan / atau acara harus dilanjutkan ke listener on-click lainnya.
Apakah Anda kembali truedari Anda onLongClick()dan masih mendapatkan peristiwa klik biasa?
Diedit untuk menambahkan : Untuk ListView, Anda mungkin menggunakan OnItemLongClickListener. The onItemLongClick()ada menggunakan nilai kembali boolean mirip dengan menunjukkan apakah itu dikonsumsi acara tersebut.
Mengulangi jawaban dalam istilah yang lebih sederhana:
Diberikan:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return trueberarti acara tersebut dikonsumsi. Itu ditangani. Tidak ada peristiwa klik lain yang akan diberitahukan.return falseberarti acara tersebut tidak dikonsumsi. Peristiwa klik lainnya akan terus menerima pemberitahuan.Jadi jika Anda tidak ingin onClickjuga dipicu setelah onLongClick, maka Anda harus return truedari onLongClickacara tersebut.
Pastikan Anda mengganti metode OnClickListenerAnda onClick. Juga pastikan Anda mengganti metode OnLongClickListenerAnda onLongClick. Dan pastikan bahwa onLongClickmetode Anda kembali true, karena ini akan menggunakan file onClick.
Anda dapat mengimplementasikan setOnLongClickListenerpembuatan instance new View.OnClickListener()atau new View.OnLongClickListener(), jika Anda membuat Long click dan mengimplementasikan OnclickListener normal, Anda akan mendapatkan error ini karena satu klik yang mengaktifkan metode ini. Anda harus menggunakan new View.OnLongClickListener()hanya untuk menangkap klik panjang
myListView.setOnItemLongClickListener(this);opsi, Anda harus Mengganti fungsipublic boolean onItemLongClick(...). Di sini Anda hanya perlureturn trueyang menunjukkan bahwa LongClick telah diaktifkan dan akan membatalkan pemicu pada klik biasa. Jika Anda mengembalikan false maka itu akan memicu klik biasa juga.