0

我有一个使用数据库来显示一些数据的列表。用户可以对每个列表项执行多项操作,而不是实现用户使用长按来显示可能操作列表的上下文菜单,我想为每个项目添加按钮,以便用户只需点击按钮并执行操作。列表可能很大,并且为每个列表项的每个按钮附加一个侦听器是多余的,所以我想做 Javascript 程序员对事件冒泡所做的事情,即将单个处理程序附加到像整个列表这样的顶级元素并让点击事件冒泡到它。我该怎么做呢?

4

1 回答 1

1

View.OnClickListener.onClick()不会冒泡,因此您提出的解决方案不起作用。

OTOH,View.OnTouchListener.onTouch()确实会冒泡,因此可能会使用它,但它需要您手动处理 MotionEvent 的向下/向上以检测点击。

此外,如果您创建了很多按钮,那么您确定添加 onCLick 处理程序会产生很多开销,特别是因为您可以为所有按钮注册相同的方法。

您正在尝试做的事情听起来像是过早的优化。在尝试处理它之前,请确保确实存在影响用户的开销。

于 2011-02-18T22:54:20.540 回答