2010-01-26 97 views
1

我有一個包含五個TextView的佈局。當用戶點擊五個TextView中的任何一個時,它會做同樣的事情:打開另一個活動。所以,五個TextView的OnClickerListener行爲是一樣的。 是否有可能我只將OnClickListerner添加到一個視圖,例如佈局,所以我不必將OnClickListerner添加到五個TextView中的每一個? 換句話說,如果沒有一個子組件接收到CLICK事件,CLICK事件是否會傳遞給它們的父級佈局?將事件傳遞給父視圖?

謝謝。

+0

據我所知,您可以將OnClickerListener添加到幾乎任何視圖中。 – m6tt 2010-01-26 09:39:34

回答

1

我不相信有另一個地方可以自動接收來自佈局中所有視圖的點擊輸入。

您可以使用自定義的OnClick行爲來擴展TextView。

或者,只需將相同的OnClickListener實例傳遞給所有文本框即可。

+0

此行爲不正確。看到我的答案。事件冒起來了。 – 2012-08-24 03:41:27

4

以上來自Mayra的回答不正確。如果最低級別的控件(即您的案例中的textview)確實有而不是有與之關聯的OnClickListener(),則單擊事件會「向上冒泡」到父級。它將繼續這種方式,直到找到一個實現OnClickListener的視圖;否則點擊被忽略(我假設)。我多次利用了這種行爲。

同時,請參閱這篇文章瞭解詳情:Stackoverflow Question 8135032

我知道這是一個非常古老的職位,但要糾正它爲別人在這問那絆倒。

1

它可能並非如此,但我最近花了幾個小時試圖讓TextView將它的點擊事件傳播給它的父項。我沒有成功,因爲顯然如果你設置MovementMethod tv.setMovementMethod(LinkMovementMethod.getInstance()); 它會抓住「冒泡」並且永遠不會到達它的父母。

相關問題