Android ListView/GridView onItemClick函数参数说明及使用举例

本文详细解释了如何在不同的ListView和GridView中触发OnItemClick事件,并提供了区分它们的方法,包括通过适配器和位置参数进行识别。

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

举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item。
如果你点了b这个item。如下:


public void onItemClick (AdapterView<?> parent, View view, int position, long id )


// parent 相当于listview Y适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X - -
// view 是你点b item的view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件
// position 是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的)
// id 是b在listview Y里的第几行的位置(很明显是第2行),大部分时候position和id的值是一样的,如果需要的话,你可以自己加个log把position和id都弄出来在logcat里瞅//瞅,//看了之后心里才踏实。
举例:区分来自不同listview/gridView的onitemclick事件(如果通过arg0来定位是来自哪个gridview/listview)
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if (mInputTypeAdapters.contains(arg0.getAdapter())) {
// 处理消息类型面板
//说明:Arraylist<BaseAdapter> mInputTypeAdapters;
//        int  currentGridView  当前gridview在mInputTypeAdapters中的位序
//       CustomViewData//自定义的数据结构体类型
// 方法一:
/CustomViewDatadata = (CustomViewData) mInputTypeAdapters.get(currentGridview).getItem(arg2);
// 方法二
CustomViewDatadata = (CustomViewData) arg0.getAdapter().getItem(arg2);
} else if (mEmojiAdapters.contains(arg0.getAdapter()))

  {// 处理表情部分

ChatEmojiObject emojiObject = (ChatEmojiObject) arg0.getAdapter().getItem(arg2);

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值