gpt4 book ai didi

ExpandableListView 组项目上的 Android LongClickListener

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:49:54 26 4
gpt4 key购买 nike

我在本教程的帮助下创建了一个 ExpandableListView:link .我或多或少地理解了代码,并一直在尝试在组上设置一个 longclicklistener。

子项上已经有一个 setOnChildClickListener,我设法在它们上设置了一个 longclicklistener:

exList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
groupPosition = ExpandableListView.getPackedPositionGroup(id);
childPosition = ExpandableListView.getPackedPositionChild(id);
//[....]
return false;
}
});

如何在组项上设置 longclicklistener?

我知道代码很难阅读,所以我创建了一个示例项目并将其上传到 here .这对 child 没有 onlongclicklistener,因为这几乎是上面链接的原始内容。如果有人可以帮助我,我将不胜感激。

最佳答案

组项是所有项的子集,因此在任何一种情况下都应调用上述方法。然后,您将像上面那样使用 getPackedPositionType 来确定所选项目是组、项目还是 null。

代码如下:

exList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
int itemType = ExpandableListView.getPackedPositionType(id);

if ( itemType == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
childPosition = ExpandableListView.getPackedPositionChild(id);
groupPosition = ExpandableListView.getPackedPositionGroup(id);

//do your per-item callback here
return retVal; //true if we consumed the click, false if not

} else if(itemType == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
groupPosition = ExpandableListView.getPackedPositionGroup(id);
//do your per-group callback here
return retVal; //true if we consumed the click, false if not

} else {
// null item; we don't consume the click
return false;
}
});

如果是一个组,你将像上面那样使用getPackedPositionGroup来获取被长按的组ID。如果它是一个项目,您将使用 getPackedPositionGroup 和 getPackedPositionChild 的组合。

关于ExpandableListView 组项目上的 Android LongClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com