2011-02-18 75 views
0

我有一個使用數據庫來顯示一些數據的列表。用戶可以在每個列表項上執行多個操作,而不是實現用戶使用長按來彈出可能操作列表的上下文菜單。我想爲每個項目添加按鈕,以便用戶可以輕按按鈕並執行操作。該列表可能很大,每個列表項的每個按鈕附加一個監聽器是矯枉過正的,所以我想要做Javascript程序員用事件冒泡做什麼,即將單個處理程序附加到頂級元素(如整個列表),然後讓點擊事件冒泡到它。我會如何去做這件事?Android列表點按事件代表團

回答

1

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

OTOH,View.OnTouchListener.onTouch()確實會冒泡,因此可能會使用它,但它需要您手動處理MotionEvent的向下/向上以檢測點擊。另外,如果你創建了很多按鈕,比你確定添加onCLick處理程序會花費很多開銷,尤其是因爲你可以爲它們註冊相同的方法。

你試圖做的事聽起來像一個過早的優化。在你嘗試處理它之前,確保有真正的開銷影響你的用戶。

+0

你說得很好,給所有人分配相同的處理程序,只是在單個處理程序中處理事務的處理方式聽起來就是最好的處理方式。 – davidk01 2011-02-18 23:34:07