2010-07-03 82 views
1

我想使該格式的觀點像這樣的列表適配器:自定義ListView的適配器創建拆分按鈕

List Entry

我希望能夠以觸發不同的onClick當用戶點擊圖片。我已經在getView()重寫中定義了圖像本身的onClick,但是如何獲得被單擊的行的位置,以便我可以更新數據庫中的記錄以記錄操作?

回答

3

首先,您需要代表適配器的ListView。如果你已經把它存儲在某個地方了,太棒了;如果沒有,您可以將傳遞給onClick()的View並將其getParent()方法調用兩次(或更多,如果圖像在被單擊的項目視圖中嵌套得更深)以獲取ListView。

從那裏,在View上調用ListView.getPositionForView()傳遞給onClick()。這會給你一個int值來表示列表適配器中點擊項的位置。從那裏,你可以隨心所欲地做任何事情。

例如:

public void onClick(View v){ 
    ListView lv = (ListView)(v.getParent().getParent()); // you may need more getParent()s and/or extra casting 
    int position = lv.getPositionForView(v); 
    /* Do whatever database stuff 
    * You want to do 
    */ 
} 
+0

啊哈! getPositionForView是關鍵。非常感謝! – 2010-07-03 12:52:36