Android:ListView的onItemClick监听器 - 如何识别项目?

时间:2012-06-02 18:44:04

标签: java android

我创建了一个填充ArrayAdapter的自定义ListView。适配器中的数据是我从服务器获取的POJO列表。每个POJO都有一个服务器给出的唯一ID,我对该id没有影响。该ID仅供内部使用,表示它不会在ListView上显示给用户。

我的意图:如果用户点击列表中的某个项目,我想将该ID传回服务器。第一步是创建onItemClickListener

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void OnItemClick(AdapterView<?> parent, View view, int position, long id) {

    // call the server in a new thread

    // BUT: how do I get the POJO id from this position?

    }
}); 

我的问题是:我不知道如何获取POJO的id。由于它没有显示给用户,因此不是在TextView中我在侦听器中传递。其他参数 - 位置和ID - 似乎也是我需要的。说明:

  • position:适配器中视图的位置。
  • id:已点击的项目的行ID。

我希望你明白我的意思,否则告诉我。谢谢!

3 个答案:

答案 0 :(得分:4)

parent.getItemIdAtPosition(int position)将为您提供该索引的pojo对象。

答案 1 :(得分:3)

这取决于适配器的工作方式。 id参数将与适配器 适应中的一个项目相对应。根据{{​​1}}以及适配器的工作方式,您可以检索由单击的视图表示的原始逻辑项。

答案 2 :(得分:2)

@Override
public void OnItemClick(AdapterView<?> parent, View view, int position, long id) {

    Object item = parent.getAdapter().getItem(position);
}