我创建了一个填充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 - 不似乎也是我需要的。说明:
我希望你明白我的意思,否则告诉我。谢谢!
答案 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);
}