1

我有 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 不长。

4

2 回答 2

5

我不是在问你为什么要这样做(你可能有你的理由),所以只会解释如何去做。由于您已经在实现自定义适配器,因此您需要做的就是覆盖该getItemId方法:

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

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

于 2012-09-18T13:24:56.030 回答
1

你到底想达到什么目的?在您的适配器中,您可以覆盖“getItemId(int position)”,并使其返回您要为项目提供的任何 ID。但是为什么使用 id 值,为什么不简单地使用位置呢?

于 2012-09-18T13:24:12.723 回答