今天该同事之前写的一个程序,点击listview的每个条目播放响应视频。但是发现老师播放第一条,无法理解,后来发现adapter的实现类里面,有个方法getItemId(int position)
之前同事直接就返回1,
@Override
public long getItemId(int position) {
return 1;
}
而我在itemclickListener的实现如下:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (id == -1)
return;
DownloadItem item = (DownloadItem) list.get((int) id);
if (item != null) {
//........
}
}
});
然后我将adapter实现的这个方法修改了一下,
@Override
public long getItemId(int position) {
return position;
}
终于OK了,如果不明白id和position的区别的请看 Android ListView的OnItemClickListener详解