2012-09-18 65 views
1

我有onItemClick偵聽器,我想使用id值。 但它與位置具有相同的價值。如何設置onItemClick的行ID從

public void onItemClick(AdapterView<?> a, View view, int position, long id) { 
    DBh.something(id); 
} 

進出口使用自定義的ArrayAdapter類似於thatone: onItemClickListener with custom adapter and listview

我試圖用row.setId(),但它的INT不長。

+0

你可以請你出示你的完整代碼嗎? –

+0

arrayadapter中沒有id,只有位置 – njzk2

回答

5

我不要求爲什麼你要做到這一點(你可能有你的原因),所以將只解釋如何做到這一點。因爲你已經實現定製適配器,所有你需要做的是重寫getItemId方法:

@Override 
public long getItemId(int position) { 
    //return ID based on the position 
    return ...; 
} 

那麼這個值將被傳遞到接收項ID其他方法。請注意,如果您知道如何從頭寸獲取ID,那麼您可以直接在onItemClickListener中執行該操作,因爲頭寸已經傳入頭寸。

1

你想要達到的究竟是什麼?在您的適配器中,您可以覆蓋「getItemId(int position)」,並使其返回任何您想要給該項目的ID。但爲什麼使用id值,爲什麼不簡單地使用該位置?

+0

即時通訊使用時間戳作爲全局id,我需要找到單擊元素的時間戳值。 – Paxmees

+0

那麼爲什麼你不添加時間戳作爲元素中的一個字段? – Christine

+0

我建議覆蓋getItemId,並且我建議使用「postion」而不是「itemid」。那怎麼不是答案? – Christine