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

时间:2012-09-01 18:54:36

标签: java android onlongclicklistener long-click

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

2 个答案:

答案 0 :(得分:36)

如您所知,Android中的View层次结构由树表示。当您从true返回onItemLongClick()时,这意味着当前收到该事件的View是真正的事件接收者,并且该事件不应传播到另一个Views在树上;当您返回false时 - 您将事件传递给可能会使用该事件的其他Views。希望这会有所帮助。

答案 1 :(得分:3)

我将通过一个示例为您进一步阐明这一点。

@Override
public boolean onLongClick(View view) {

//Do all you stuff here    

return true; // or you can return false;
}
  • return true表示:该事件已处理。没有活动 在这一点之后被解雇。
  • 返回false表示:事件尚未处理。任何其他事件 仍然会触发此点击。

因此,在触发 onLongClick()之后,如果您不希望触发常规的 onClick(),则只需返回true 来自onLongClick()事件。