Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - Why does onItemLongClick(...) return a boolean?

Coming from a Java background I am used to dealing with actions though I'm not really sure why the method requires a boolean is returned and don't fully understand the explanation given on the site: true if the callback consumed the long click, false otherwise.

like image 951
Tim Avatar asked Sep 01 '12 18:09

Tim


2 Answers

As you may know, the View hierarchy in Android is represented by a tree. When you return true from the onItemLongClick() - it means that the View that currently received the event is the true event receiver and the event should not be propagated to the other Views in the tree; when you return false - you let the event be passed to the other Views that may consume it. Hope this helps.

like image 122
Egor Avatar answered Nov 09 '22 22:11

Egor


I will further clarify this for you, by way of an example.

@Override
public boolean onLongClick(View view) {

//Do all you stuff here    

return true; // or you can return false;
}
  • return true means: that the event has been handled. No events will be fired after this point.
  • return false means: the event has NOT been handled. Any other events to do with this click will still fire.

So, after your onLongClick() has fired, if you don't want the regular onClick() to fire, then just return true from the onLongClick() event.

like image 12
Yo Apps Avatar answered Nov 09 '22 20:11

Yo Apps