Android 绑定到片段中文本视图的GestureDetector

Android 绑定到片段中文本视图的GestureDetector,android,android-fragments,Android,Android Fragments,因此,我有一个文本视图,它位于我的活动中的片段中。我试图在文本视图中添加手势检测器,以便用户可以执行与之相关的某些操作。我特别想要刷卡或扔东西。我的代码如下: public void onViewCreated(View view, Bundle savedInstanceState) { myGestDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureLis

因此,我有一个文本视图,它位于我的活动中的片段中。我试图在文本视图中添加手势检测器,以便用户可以执行与之相关的某些操作。我特别想要刷卡或扔东西。我的代码如下:

public void onViewCreated(View view, Bundle savedInstanceState)
{       
    myGestDetector = new GestureDetector(getActivity(), new    GestureDetector.SimpleOnGestureListener());
    TextView mainTextView = (TextView)getView().findViewById(R.id.HourCount);
    mainTextView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            myGestDetector.onTouchEvent(motionEvent);
            return false;
        }

    });

}
@Override
public boolean onDown(MotionEvent motionEvent) {
    return false;
}

@Override
public void onShowPress(MotionEvent motionEvent) {

}

@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
    return false;
}

@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
    return false;
}

@Override
public void onLongPress(MotionEvent motionEvent) {

}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
    Log.d("GESTURES", "onFling: " + event1.toString()+event2.toString());
    return true;
}
问题是我不能让任何一个都开火。我已经试过几次了,但是日志没有显示我正在调用onFling。有人知道我做错了什么吗

 mainTextView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        myGestDetector.onTouchEvent(motionEvent);
        return false;  // Return true from here or better return  myGestDetector.onTouchEvent(motionEvent);
    }

});
通过返回true,android知道您正在使用触摸事件 参考:

编辑:

myGestDetector = new GestureDetector(getActivity(), new GestureListener());
做一个这样的私人课

private class GestureListener implements GestureDetector.OnGestureListener {

        public GestureListener() {
        }

        @Override
        public boolean onDown(MotionEvent motionEvent) {
            return false;
        }

        @Override
        public void onShowPress(MotionEvent motionEvent) {

        }

        @Override
        public boolean onSingleTapUp(MotionEvent motionEvent) {
            return false;
        }

        @Override
        public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
            return false;
        }

        @Override
        public void onLongPress(MotionEvent motionEvent) {

        }
        @Override
        public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
            Log.d("GESTURES", "onFling: " + event1.toString()+event2.toString());
            return true;
        }
    }

仍然不起作用。没有日志条目表明onFling甚至被调用。那么为什么要使用GestureDetector。SimpleOnGestureListener()请使用您创建的自定义手势侦听器,查看编辑的答案