Câu trả lời:
Từ người nghe sự kiện :
onLongClick () - Điều này trả về một boolean để cho biết bạn đã tiêu thụ sự kiện hay chưa và nó không nên được tiếp tục. Đó là, trả về true để chỉ ra rằng bạn đã xử lý sự kiện và nó sẽ dừng ở đây; trả về false nếu bạn chưa xử lý nó và / hoặc sự kiện sẽ tiếp tục với bất kỳ người nghe nhấp chuột nào khác.
Bạn đang trở về true
từ onLongClick()
và vẫn nhận được sự kiện nhấp bình thường?
Đã chỉnh sửa để thêm : Đối với ListView, bạn có thể đang sử dụng OnItemLongClickListener
. Ở onItemLongClick()
đó sử dụng một giá trị trả về boolean tương tự để cho biết liệu nó có tiêu thụ sự kiện hay không.
Khôi phục câu trả lời bằng các thuật ngữ đơn giản hơn:
Được:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return true
có nghĩa là sự kiện được tiêu thụ. Nó được xử lý. Không có sự kiện nhấp chuột khác sẽ được thông báo.return false
có nghĩa là sự kiện không được tiêu thụ. Bất kỳ sự kiện nhấp chuột nào khác sẽ tiếp tục nhận được thông báo.Vì vậy, nếu bạn không muốn onClick
cũng được kích hoạt sau một onLongClick
, thì bạn nên return true
từ onLongClick
sự kiện.
Hãy chắc chắn rằng bạn đang ghi đè OnClickListener
cho onClick
phương pháp của bạn . Cũng chắc chắn rằng bạn đang ghi đè OnLongClickListener
cho onLongClick
phương pháp của bạn . Và chắc chắn rằng onLongClick
phương thức của bạn trả về true
, vì điều này sẽ tiêu thụ onClick
.
Bạn có thể thực hiện setOnLongClickListener
việc tạo một thể hiện của new View.OnClickListener()
hoặc new View.OnLongClickListener()
, nếu bạn tạo một nhấp chuột dài và thực hiện OnclickListener bình thường, bạn sẽ nhận được các lỗi này của một lần nhấp khi kích hoạt phương thức. Bạn chỉ nên sử dụng new View.OnLongClickListener()
để bắt những nhấp chuột dài
myListView.setOnItemLongClickListener(this);
tùy chọn, bạn sẽ phải Ghi đè chức năngpublic boolean onItemLongClick(...)
. Ở đây bạn chỉ cầnreturn true
chỉ ra rằng LongClick đã được kích hoạt và sẽ hủy kích hoạt khi nhấp thường xuyên. Nếu bạn trả về false thì nó cũng sẽ kích hoạt nhấp chuột thường xuyên.