如何在列表视图上触发正确的 Longclick 事件

Posted

技术标签:

【中文标题】如何在列表视图上触发正确的 Longclick 事件【英文标题】:how to trigger proper Longclick event on listview 【发布时间】:2014-12-08 21:37:33 【问题描述】:

我必须在长按列表视图时显示 android 上下文操作模式 但是当我们长按然后一些多事件触发和上下文菜单隐藏 那么有没有办法处理这个问题。

我也尝试在 onLongClick() 上返回 true,但它不起作用

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

在***上搜索后 我用这个question找到了我的答案 在我的列表视图上实现 GestureDetector 这是我的代码

在列表视图上设置 GestureDetector

final GestureDetector gestureDetector = new GestureDetector(new MyGestureDetector());
        View.OnTouchListener gestureListener = new View.OnTouchListener() 
            public boolean onTouch(View v, MotionEvent event) 
                return gestureDetector.onTouchEvent(event); 
            ;
        mMessageListView.setOnTouchListener(gestureListener);

还有这个 MyGestureDetector 的代码

class MyGestureDetector extends SimpleOnGestureListener 

           @Override
        public void onLongPress(MotionEvent e) 
            super.onLongPress(e);
            ListView lv = mMessageListView;
            int pos = lv.pointToPosition((int)e.getX(), (int)e.getY());
            if (listMsg.get(pos).type==ChatItem.ITEM) 
                mMessageListView.setItemChecked(pos, !adapter.isPositionChecked(pos));
             
        

       

我分享这个答案,以便对其他分享有所帮助

【讨论】:

以上是关于如何在列表视图上触发正确的 Longclick 事件的主要内容,如果未能解决你的问题,请参考以下文章

LongClick 事件也会触发 Click 事件

如何在 SupportMapFragment 中使用 OSMDroid 在地图上启用 LongClick

如何在gridimage的Longclick上显示所有复选框

长按网页视图的水平菜​​单充气机

使用 MVVM 从 WPF ListView 项触发双击事件

Django - 如何正确地将列表从模板发送到 AJAX 以查看?