Android - 为什么 onItemLongClick(...) 返回一个布尔值?

来自Java背景,我习惯于处理操作,尽管我不太确定为什么该方法需要返回布尔值,并且不完全理解网站上给出的解释:如果回调消耗了长按,则为真,否则为假。


答案 1

如您所知,Android中的层次结构由树表示。当您从 - 返回时,这意味着当前接收的事件是真正的事件接收器,并且事件不应传播到树中的另一个;当你返回时 - 你让事件传递给另一个可能消耗它的人。希望这有帮助。ViewtrueonItemLongClick()ViewViewsfalseViews


答案 2

我将通过一个例子为你进一步澄清这一点。

@Override
public boolean onLongClick(View view) {

//Do all you stuff here    

return true; // or you can return false;
}
  • 返回 true 意味着:事件已被处理。在此点之后不会触发任何事件。
  • 返回 false 表示:事件尚未处理。与此单击相关的任何其他事件仍将触发。

因此,在你的 onLongClick() 触发后,如果你不希望常规 onClick() 触发,那么只需从 onLongClick() 事件返回 true


推荐