2009-10-12 28 views
1

老問題(已經由Mark回答 - 答案是使用getTag()):Android:自定義視圖的事件處理程序? (問題修訂本)

比方說,我有每一行具有的ImageView和一個TextView自定義佈局一個ListView。現在,當點擊完成後,我可以根據視圖確定哪個圖像和哪個文本視圖被點擊過,但如果我必須通過這些信息來說另一個活動,我需要這個位置。但是,我將如何獲得在列表視圖中點擊的項目的位置?

經修訂的課題:

我做了以下內容:與的ImageView和一個TextView定製的ListView。我想根據是否點擊圖片或文本元素來執行不同的操作。現在,我可以採取兩種方法來執行事件處理:

方法1:將OnItemClick偵聽器附加到ListView中的項目並執行適當的操作。 問題:對於單擊哪個元素(圖像或文本)仍存在疑問。我如何確定這條信息然後採取必要的行動?

方法2:將OnClick Listener附加到每個listview項目內的圖像和文本,然後執行適當的操作。 問題:我對這種方法的性能持懷疑態度。除此之外,當執行點擊時,項目的行沒有被突出顯示,這使得它非常不直觀。我如何在這種情況下突出顯示行?

有什麼建議嗎?

+0

您是否只需要可點擊的行或每行內的項目? – 2009-10-12 23:13:52

+0

我實際上正在尋找行內的物品......但是我可以將事件處理程序附加到行內的物品(這看起來非常龐大)或者將附加事件處理程序添加到行中,然後確定哪個視圖被點擊...(這似乎是一種更好的方式來做事)... – Legend 2009-10-12 23:18:26

+0

@Legend你有沒有得到一個答案呢?我陷入了同樣的問題。你做了什麼來確定哪個視圖(imageview或textview被點擊)?另外,我對android非常陌生,我知道如何將onCLick事件分配給視圖,但是,如何爲連續的每個視圖執行此操作?我生成的Eack意圖必須有所不同,具體取決於所點擊的視圖以及所在的行。 – harshit 2012-10-11 07:44:33

回答

4

通過setTag()將該位置附加到行(或其某個小工具)上,並在需要時通過getTag()檢索它。

+0

非常感謝您......這是否意味着我實際上可以將標記設置爲該項目(它包含我的整個片段信息)本身?在這種情況下,我真的不必擔心使用位置變量獲取項目的屬性......任何建議? – Legend 2009-10-12 23:15:22

+0

此外,如果整個事情看起來很複雜,有沒有一種方法可以實際得到哪個視圖被點擊,然後採取特定的行動? – Legend 2009-10-12 23:17:29

+0

w/r/t第一個評論,我不能在摘要中回答。 w/r/t第二個註釋,你的OnClickListener告訴你在onClick()方法中點擊了什麼View。 – CommonsWare 2009-10-13 00:05:42

相關問題