ExpandableListView长按确定父项与子项

本文介绍如何在ExpandableListView中实现对父项的长按监听,并获取父项及子项的位置信息。通过使用getExpandableListPosition方法,可以解析出扁平化位置对应的父位置和子位置。

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

在使用ExpandableListView时有时需要对父项设置长按监听,但自带的setOnItemLongClickListener中的flatPos位置是所有展开项,包括父项和子项在内的位置,而大多情况下需要得到父项再父项列表中的位置以及子项在子项列表中的位置。

下面是解决方法:

//长按监听
expandableListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
   @Override
   public boolean onItemLongClick(AdapterView<?> parent, View view, int flatPos, long l) {
   //得到点击的父位置,子位置
long packedPos = ((ExpandableListView)parent).getExpandableListPosition(flatPos);
int groupPosition=
ExpandableListView.getPackedPositionGroup(packedPos);
int childPosition = ExpandableListView.getPackedPositionChild(packedPos);
System.out.println("groupPosition----"+groupPosition);
System.out.println("childPosition----"+childPosition);
   if(childPosition == -1){//长按的是父项
     //这里做关于父项的相关操作......     
     }
    else {//长按的是子项
     //这里做关于子项的相关操作.......
     }
 return true;
 }
 });

childPosition == -1 时点击的是GroupView,
childPosition >= 0 时点击的是ChildView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子林Android

感谢老板,老板大气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值