我有一個包含大量圖像的佈局。我必須做的是當一個圖像被點擊時,我必須顯示它的細節。但我不想讓所有圖像都有onClickListeners。我怎樣才能做到這一點?檢測點擊父母的哪個孩子點擊
回答
您不必爲所有圖像使用不同的處理程序。對所有圖像使用一個處理程序。這將使你的代碼更加清潔,易於管理並解決你的問題。
public void onCreate(Bundle bundle) {
//...
OnClickListener mHandler = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.img1:
//..
break;
case R.id.img2:
//....
break;
}
}
};
ImageButton btn1 = (ImageButton)findViewById(R.id.img1);
ImageButton btn2 = (ImageButton)findViewById(R.id.img2);
//...
btn1.SetOnClickListener(mHandler);
btn2.SetOnClickListener(mHandler);
//...
}
一個Listener
來統治它們。
在物體上實現
onClick()
,其註冊爲監聽器在
onClick()
,檢查作爲參數傳遞的View
對象,以確定該圖像的被單擊。你可以做任何事情從getId()
到鑄造它(ImageView)
並獲得實際的圖像。一旦你知道哪個圖像被點擊了,你會用它做什麼。
在對象上實現onClick(),將其註冊爲偵聽器 - 你的意思是實現OnClickListener接口並重寫onClick()方法嗎? –
確實。然後調用'setOnClickListener' – slezica
好的..謝謝:) –
如果你正在尋找實現一個ImageView
(或其他)定製行爲,然後有一個類型的視圖的多個實例,你應該繼承的ImageView
,把你的聽衆在那裏。然後你會得到一個封裝的View
,它實現了你想要的自定義行爲,如果你以後決定要多或少需要或者將它們放在另一個地方,那麼很容易移動View
及其行爲而不會撕裂你的Activity
。
- 1. jQuery的 - 點擊父母從孩子
- 2. 在點擊父母影響孩子也
- 3. JS addeventlistener點擊父母不是孩子
- 4. 防止點擊孩子發射父母點擊事件
- 5. 如何防止孩子點擊父母點擊
- 6. jquery,在父母點擊檢查子女
- 7. 檢測哪個子元素被點擊
- 8. jquery點擊檢測目標孩子
- 9. 在按鈕上添加一個孩子到父母點擊Xamarin.forms
- 10. slideToggle:通過點擊一個孩子鏈接隱藏父母
- 11. 點擊父,忽視它的孩子
- 12. Angular 2 - 當點擊父元素時防止點擊孩子?
- 13. 當孩子被點擊時觸發父級點擊事件
- 14. Angular2 - 切換父母和孩子的風格點擊
- 15. 父母和孩子視圖的點擊事件
- 16. jQuery的孩子激活父母點擊事件
- 17. jQuery的孩子是捕捉點擊,只希望父母
- 18. 我如何找到父母點擊孩子的索引
- 19. 當用jQuery點擊父母時更改孩子的班級
- 20. Expandablelistview點擊孩子
- 21. 擴大父李點擊孩子UL
- 22. 父母和子女的點擊事件
- 23. 子div點擊事件觸發父母點擊事件
- 24. jQuery的單擊事件的父母,但要找到孩子(點擊)元素
- 25. 父母/孩子點擊事件處理(香草JS)
- 26. 對父母點擊觸發事件但不對孩子觸發
- 27. 是否有可能檢查哪個「孩子」 DIV被點擊
- 28. jQuery檢測哪個id被點擊
- 29. 檢測點擊了哪個CCSprite
- 30. JQuery - 檢測哪個div框被點擊
謝謝你的回答..你在你的代碼中提到的OnClickHandler類是你自己的類,因爲我找不到它。如果是這樣,它繼承了哪個類? –
它在View.OnClickListener中。而且它是一個接口。如果你想要,你可以在你的類中實現接口,然後調用'btn.SetOnClickListener(this);' –
對不起,那是我的錯。我把它拼寫成「OnClickHandler」。這當然是'OnClickListener'。直到現在我還沒有注意到它。 –