Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用onClick时禁用onTouch_Android_Text To Speech_Blind - Fatal编程技术网

Android 使用onClick时禁用onTouch

Android 使用onClick时禁用onTouch,android,text-to-speech,blind,Android,Text To Speech,Blind,我正在为视障人士创建一个Android应用程序,并使用一个按钮菜单。 当用户在屏幕上滑动手指时,应用程序会读取按钮的标题。这是使用onTouch事件完成的。当用户单击按钮时,会发生一个动作(更改活动或任何其他动作),并伴有语音反馈。这是使用onClick事件完成的 问题在于,单击按钮时,两个事件都会触发(onTouch和onClick),TTS开始读取onTouch消息,半秒钟后停止,并启动onClick事件中声明的新消息。如何在调用onClick时禁用onTouch的触发。我理解这个问题,因为

我正在为视障人士创建一个Android应用程序,并使用一个按钮菜单。 当用户在屏幕上滑动手指时,应用程序会读取按钮的标题。这是使用onTouch事件完成的。当用户单击按钮时,会发生一个动作(更改活动或任何其他动作),并伴有语音反馈。这是使用onClick事件完成的

问题在于,单击按钮时,两个事件都会触发(onTouch和onClick),TTS开始读取onTouch消息,半秒钟后停止,并启动onClick事件中声明的新消息。如何在调用onClick时禁用onTouch的触发。我理解这个问题,因为onTouch总是先于onClick,但我不知道如何解决

多谢各位

   public final OnTouchListener mOnTouchListener = new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent rawEvent) {
        return false;
    }
}; 


对象
.setOnTouchListener(空)

简单回答亲爱的避免点击事件应用点击事件

我也面临同样的问题,所以我知道如何解决这个问题

只要使用这个代码

首先创建手势类

class MyGestureDetector extends SimpleOnGestureListener 
{
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
    {
        return false;
    }
    @Override
    public boolean onDoubleTap(MotionEvent e) 
    {
        return true;
    }
    @Override
    public boolean onSingleTapUp(MotionEvent e) 
    {
        return true;
    }
}
然后创建GestureDetector GestureDetector
反对和反对

gestureDetector=new GestureDetector(myContext, new MyGestureDetector());
然后注册触控事件

view.setOnTouchListener(this);
像这样重写onTouch方法

@Override
    public boolean onTouch(View view, MotionEvent event) 
    {
        Button b=(Button) view;
        gestureDetector.onTouchEvent(event);
        return true;
    }

这里做一些关于单点tp和双击的任务。

我不明白这是如何回答我的问题的。这只会禁用onTouch,而我需要两个。但我不使用双击。我使用ontouch在屏幕上移动,接收屏幕上显示的内容的音频反馈,并单击ontouch激活屏幕上显示的元素。最欢迎接受答案