2016-05-27 6 views

Antwort

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

Es ist wahr, zurückkehren nicht notwendig ist, ist es notwendig, einen boolean zurück, so dass es falsch sein kann.

Aus der Dokumentation:

Rückgabewerte Boolean true, wenn der Rückruf, um den lange klicken, falschen sonst verbraucht.

Das bedeutet, wenn Sie true zurückgeben, wird das Ereignis nicht mehr weitergegeben. Andernfalls wird das Ereignis weiter verbreitet und andere ähnliche Ereignisse werden aufgerufen.

Wenn Sie beispielsweise false zurückgeben, wird Ihr OnLongClick-Ereignis ausgelöst. Nach dem Beenden wird Ihr onClickListener ausgelöst. Wenn Sie true zurückgeben, wird das Ereignis in OnLongClickListener angehalten.

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

Sie implementieren eine Schnittstelle. Die Methode ist bereits definiert, aber nicht implementiert. Du kannst es nicht ändern. Für weitere Informationen über diese:

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

1

Sie überschreiben die Fiktion. Sie müssen also dem Funktionsprototyp genau folgen. Das sind die Sprachregeln, mit denen man nicht streiten kann.
Daher können Sie nicht Rückgabetyp ändern.

Es ist notwendig, true zurück Android OS zu erzählen, die Funktion fehlerfrei ausgeführt wurde

+0

aber was, wenn wir falsch zurückgeben? –

+1

Die Rückgabe von false verhindert im Grunde nur, dass die Standardaktion ausgeführt wird. Hoffe das löst dein Problem. –

1

wir zurückkehren TRUE in setOnLongClickListner() den Rahmen zu sagen, dass das Berührungsereignis verbraucht wird und keine weitere Ereignisbehandlung erforderlich ist. und wenn wir FALSE zurückgeben, wird es nie die actiion auslösen.

Verwandte Themen