如何在listview上触发正确的Longclick事件

时间:2014-10-14 07:25:05

标签: android android-layout android-listview onlongclicklistener

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

我也尝试在onLongClick()上返回true,但它不能正常工作

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在stackoverflow上搜索之后 我用question找到了答案 在我的listview上实现GestureDetector这里是我的代码

在listview上设置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));
            } 
        }

       }

我分享这个ans所以它可以帮助其他分享