我有onItemClick监听器,我想使用id值。 但它与位置具有相同的价值。
public void onItemClick(AdapterView<?> a, View view, int position, long id) {
DBh.something(id);
}
我使用自定义ArrayAdapter类似于那个: onItemClickListener with custom adapter and listview
我试图使用row.setId()但它的int不长。
答案 0 :(得分:5)
我不是在问为什么你正在尝试这样做(你可能有你的理由),所以只会解释如何来做这件事。由于您已经在实现自定义适配器,因此您只需覆盖getItemId
方法:
@Override
public long getItemId(int position) {
//return ID based on the position
return ...;
}
然后,此值将传递到接收项ID的其他方法。请注意,如果您知道如何从该位置获取ID,那么您可以直接在onItemClickListener
中执行此操作,因为该位置已传入其中。
答案 1 :(得分:1)
你想要达到什么目的?在您的适配器中,您可以覆盖“getItemId(int position)”,并使其返回您要为该项目提供的任何Id。但为什么要使用id值,为什么不简单地使用这个位置?