2011-02-18 45 views
0

我有一个使用数据库来显示一些数据的列表。用户可以在每个列表项上执行多个操作,而不是实现用户使用长按来弹出可能操作列表的上下文菜单。我想为每个项目添加按钮,以便用户可以轻按按钮并执行操作。该列表可能很大,每个列表项的每个按钮附加一个监听器是矫枉过正的,所以我想要做Javascript程序员用事件冒泡做什么,即将单个处理程序附加到顶级元素(如整个列表),然后让点击事件冒泡到它。我会如何去做这件事?Android列表点按事件代表团

回答

1

View.OnClickListener.onClick()不起泡,所以你提出的解决方案将无法正常工作。

OTOH,View.OnTouchListener.onTouch()确实会冒泡,因此可能会使用它,但它需要您手动处理MotionEvent的向下/向上以检测点击。另外,如果你创建了很多按钮,比你确定添加onCLick处理程序会花费很多开销,尤其是因为你可以为它们注册相同的方法。

你试图做的事听起来像一个过早的优化。在你尝试处理它之前,确保有真正的开销影响你的用户。

+0

你说得很好,给所有人分配相同的处理程序,只是在单个处理程序中处理事务的处理方式听起来就是最好的处理方式。 – davidk01 2011-02-18 23:34:07