public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3)参数解析

本文详细解析了Android中ListView的点击事件处理机制,包括如何通过onItemClick方法获取点击的item信息,如视图句柄、位置及ID等,并解释了position与long id的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:http://blog.youkuaiyun.com/zwq1457/article/details/8282717
</pre><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: rgb(57, 57, 57); font-size: 14px; line-height: 21px; background-color: rgb(250, 247, 239);">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。
 
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值