我正在为视障人士创建一个Android应用程序,并使用按钮菜单。 当用户在屏幕上滑动手指时,应用程序会读取按钮的标题。这是使用onTouch事件完成的。当用户点击按钮时,会发生伴随语音反馈的动作(改变活动或任何其他动作)。这是使用onClick事件完成的。
问题在于,当单击按钮时,两个事件都会触发(onTouch和onClick)并且TTS开始读取onTouch消息,在半秒后停止并启动在onClick事件中声明的新消息。如何在调用onClick时禁用onTouch的触发。我理解这个问题是因为onTouch总是先于onClick,但我不知道解决方案。
谢谢
答案 0 :(得分:1)
简单回答亲爱的避免点击事件应用点击事件。
我也面临同样的问题所以我知道如何解决这个问题。
只需使用此代码。
首先创建手势类。
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;
}
这里有关于onSingal tp和Double Tap的一些任务。
答案 1 :(得分:0)
public final OnTouchListener mOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent rawEvent) {
return false;
}
};
或
对象.setOnTouchListener(null);