现在的位置: 首页 > 综合 > 正文

ExpandableListActivity 关于group和child列表长按事件,显示不同的操作列表

2013年12月08日 ⁄ 综合 ⁄ 共 939字 ⁄ 字号 评论关闭

纠结的问题终于解决了。

原来用他自带的2个longclick方法。getExpandableListView.setOnItemLongClickListener(),和getExpandableListView.setOnLongClickListener(),不是没响应就是会出BUG。

 

最后,从google的demo里面找到了答案。

1、首先注册
        registerForContextMenu(getExpandableListView());事件

2、然后,重写

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {}方法。然后在这个方法里面写相应的响应。

3、要识别当前是点击子列表还是组列表。

        int type = ExpandableListView.getPackedPositionType(info.packedPosition);
        //点击的是子列表
        if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {           
            int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);
            int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);

            /相应显示dialog吧~
        }
        //点击的是组列表
        else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
            int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);

            //相应显示dialog吧~
        }

抱歉!评论已关闭.