2016-05-27 103 views
0

任何人都可以告訴我爲什麼有必要在setOnLongClickListner()的結尾返回true。當我試圖將返回類型從布爾型更改爲無效時,它會給我一個錯誤。setOnLongClickListner返回true

回答

1
Can any one please tell me why it is necessary to return true in the end of setOnLongClickListner(); 

這是沒有必要返回true Android操作系統,就必須返回一個布爾值,因此它可以是假的。

從文檔:

返回如果回調消耗的長按,假 否則布爾值true。

這意味着,如果返回true,則事件停止傳播。否則,事件不斷傳播,其他相關事件將被調用。

例如,如果您返回false,則您的OnLongClick事件被觸發。完成後,您的onClickListener將被觸發。如果返回true,則事件將在OnLongClickListener中停止。

when I try to change the return type from Boolean to void then it gives me an error 

您正在實現一個接口。該方法已經定義,但未實現。你不能改變它。有關此的詳細信息:

https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

1

你正在壓倒小說。所以你必須嚴格遵循函數原型。這是你無法與之爭論的語言規則。
因此,您不能更改返回類型。

因此,有必要返回true告訴函數得到正確執行沒有錯誤

+0

但是如果我們返回false? –

+1

返回false將基本上只是防止默認操作發生。希望這能解決你的問題。 –

1

我們setOnLongClickListner()返回TRUE 告訴的觸摸事件被消耗的框架,並且不需要進一步的事件處理。如果我們返回它將永遠不會觸發行爲。