java - 如何在 ExpandableListView 中的组上设置 LongClick [Android]

标签 java android android-listview expandablelistview

我有一个 ExanpdableLisView,我必须为子项实现 setOnChildClickListener 方法,为组/父项实现“LongClick”方法。

我已经给 child 下了,但我不知道如何实现LongClick。

这是setOnChildClickListener的代码

expListView.setOnChildClickListener(new OnChildClickListener() {

            public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
                RosterEntry rentry = (RosterEntry) exListAdapter.getChild(groupPosition, childPosition);
                final String selected = rentry.getName();
                //Change Toast to make the new functionality
                Toast.makeText(getBaseContext(), selected, Toast.LENGTH_LONG).show();

                return true;
            }
        });

但我不知道如何在 Group/parent 上执行 LongClick。

最佳答案

长按组 View 或 subview ,

getExpandableListView().setOnItemLongClickListener(new OnItemLongClickListener() {

    Override   
    public boolean onItemLongClick( AdapterView<?> parent, View view, int position, long id) {

        long packedPosition = m_expandableListView.getExpandableListPosition(position);

        int itemType = ExpandableListView.getPackedPositionType(packedPosition); 
        int groupPosition = ExpandableListView.getPackedPositionGroup(packedPosition);
        int childPosition = ExpandableListView.getPackedPositionChild(packedPosition);


        /*  if group item clicked */
        if (itemType == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
            //  ...
            onGroupLongClick(groupPosition);
        }

        /*  if child item clicked */
        else if (itemType == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
            //  ...
            onChildLongClick(groupPosition, childPosition);
        }


        return false;
    }
});

定义 onGroupLongClick()onChildLongClick() 方法来执行您想要的任何操作。

试试这个。这会起作用。

关于java - 如何在 ExpandableListView 中的组上设置 LongClick [Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561551/

相关文章:

java - 在 Java 中如何将一个 double 分成 3 个较小的 double 并将这些新 double 设置为变量?

android - 在按钮上单击从 WebView 文本区域获取内容 Android

android - 使用幻灯片删除项目 ListView - 像 Gmail

Android 旅馆应用程序 BillingFlowParams 生成器失败并出现 java.lang.IllegalArgumentException

java - Android:值在插入房间数据库之前被转换为 0 或 1

android - 无法消除 ListView 内的 View

android - 实现这些 ListActivity 以在 url 中显示视频

java - Mongodb Java驱动程序游标不包含完整集合

java - 寻找特殊整数,代码效率不够

java - 玩! 2.0 DB 无法识别