參考自:
http://blog.csdn.net/zwq1457/article/details/8282717
http://blog.iamzsx.me/show.html?id=147001
public void onItemClick(AdapterView<?> arg0, View view, int position,long id) 假設有X, Y兩個listview,X里有1,2,3,4這4個item,Y里有a,b,c,d這4個item。 如果你點了b這個item。則有如下: public void onItemClick
(AdapterView<?> parent,
// parent相當於listview Y適配器的一個指針,可以通過它來獲得Y里裝着的一切東西,再通俗點就是說告訴你,你點的是Y,不是X
View view,
// view是你點b item的view的句柄,就是你可以用這個view,來獲得b里的控件的id后操作控件 int position,
// position是b在Y適配器里的位置(生成listview時,適配器一個一個的做item,然后把他們按順序排好隊,在放到listview里,
意思就是這個b是第position號做好的) long id
// id是b在listview Y里的第幾行的位置(很明顯是第2行),大部分時候position和id的值是一樣的,如果需要的話,你可以自己加個log把position和id都弄出來在logcat里瞅瞅,看了之后心里才踏實)
PS:需要注意區分position與long id的區別。position事實上就是ListView中被點擊的view的位置,注意,在ListView中是不負責處理headerView和footViewer的,所以,這個位置position應該是這個被點擊的view在數組[所有的headerView,用戶添加的view,所有的footerView]中的位置,而id是來自於adapter.getItemId(position)。當用戶添加了footView或者headView后可能會導致position和id的值不同。事實上,如果position指向了headerView或footerView,那么返回-1,否則,將返回在用戶view數組的位置。也就是說id=position-headerView的個數(id < headerviewer的個數+用戶view的個數),否則返回-1。