Android 如何从设置onItemClick的行id

Android 如何从设置onItemClick的行id,android,android-arrayadapter,onitemclicklistener,Android,Android Arrayadapter,Onitemclicklistener,我有一个mclick侦听器,我想使用id值。 但它和位置有着同样的价值 public void onItemClick(AdapterView<?> a, View view, int position, long id) { DBh.something(id); } public void onItemClick(适配器视图a、视图视图、整型位置、长id){ 胸径。某物(id); } 我使用的自定义阵列适配器与此类似: 我尝试使用row.setId(),但它的int不

我有一个mclick侦听器,我想使用id值。 但它和位置有着同样的价值

public void onItemClick(AdapterView<?> a, View view, int position, long id) {
    DBh.something(id);
}
public void onItemClick(适配器视图a、视图视图、整型位置、长id){
胸径。某物(id);
}
我使用的自定义阵列适配器与此类似:


我尝试使用row.setId(),但它的int不长

你到底想要实现什么?在适配器中,您可以重写“getItemId(int-position)”,并使其返回您想要给该项的任何Id。但是为什么要使用id值,为什么不简单地使用位置?

您到底想要实现什么?在适配器中,您可以重写“getItemId(int-position)”,并使其返回您想要给该项的任何Id。但是为什么要使用id值,为什么不简单地使用position?

我不是问你为什么要这样做(你可能有你的理由),所以我只解释一下如何做。由于您已经实现了一个自定义适配器,所以只需重写
getItemId
方法:

@Override
public long getItemId(int position) {
    //return ID based on the position
    return ...;
}
然后,该值将被传递到接收项目ID的其他方法中。请注意,如果您知道如何从该职位获取ID,那么您可以直接在
onItemClickListener
中进行操作,因为该职位被传递到该职位。

我不是问您为什么要尝试这样做(您可能有您的原因),因此,请解释一下如何进行。由于您已经实现了一个自定义适配器,所以只需重写
getItemId
方法:

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

然后,该值将被传递到接收项目ID的其他方法中。请注意,如果您知道如何从该职位获取ID,那么您可以直接在
onItemClickListener
中进行操作,因为该职位被传递到该职位。

您可以显示完整的代码吗?arrayadapter中没有ID,只有position您可以显示完整的代码吗?arrayadapter中没有ID,仅positionim使用时间戳作为全局id,我需要为单击的元素查找时间戳值。那么为什么不在元素中添加时间戳作为字段呢?我建议重写getItemId,并建议使用“position”而不是“itemid”。这怎么不是答案呢?我使用时间戳作为全局id,我需要为单击的元素找到时间戳值。那么为什么不在元素中添加时间戳作为字段呢?我建议覆盖getItemId,并建议使用“position”而不是“itemid”。这怎么不是答案?