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 true
dari 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 true
berarti acara tersebut dikonsumsi. Itu ditangani. Tidak ada peristiwa klik lain yang akan diberitahukan.return false
berarti acara tersebut tidak dikonsumsi. Peristiwa klik lainnya akan terus menerima pemberitahuan.Jadi jika Anda tidak ingin onClick
juga dipicu setelah onLongClick
, maka Anda harus return true
dari onLongClick
acara tersebut.
Pastikan Anda mengganti metode OnClickListener
Anda onClick
. Juga pastikan Anda mengganti metode OnLongClickListener
Anda onLongClick
. Dan pastikan bahwa onLongClick
metode Anda kembali true
, karena ini akan menggunakan file onClick
.
Anda dapat mengimplementasikan setOnLongClickListener
pembuatan 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 true
yang menunjukkan bahwa LongClick telah diaktifkan dan akan membatalkan pemicu pada klik biasa. Jika Anda mengembalikan false maka itu akan memicu klik biasa juga.