2012-11-26 29 views
1

该情景是,例如用户长按活动A活动A on lonkclick开始活动B而用户不抬起他的手指。 活动B应该检测到用户仍在触摸屏幕。如何检测手指是否已经在按钮上开始新的活动

我试图才达到它...

活动A在活动

ButtonA.setOnLongClickListener(new OnLongClickListener() { 

     @Override 
     public boolean onLongClick(View v) { 
      startActivityForResult(new Intent(ActivityA.this, ActivityB.class), REQUEST_1); 
      return true; 
     } 
    }); 

...

ButtonB.setOnTouchListener(new OnTouchListener() { 
     int oldEvent = -1; 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (oldEvent != event.getAction()) { 
       oldEvent = event.getAction(); 
       Toast.makeText(ActivityB.this, event.getAction() + "", Toast.LENGTH_SHORT).show(); 
      } 
      return true; 
     } 
    }); 

按钮a和ButtonB是,实例,在屏幕上的相同位置。绝对/

ButtonB没有事件ActivityB开始。 ACTION_DOWN和ACTION_UP都不是别人。通常我想要在ButtonB上收到ACTION_UP :-)

回答

1

该任务使用FragmentActivity解决。

+0

您能否更详细地解释问题的解决方案?因为只是扩展FragmentActivity并不能解决任何问题。 – jpardogo

2

如果在开始活动时手指已经在屏幕上,您将不会收到ACTION_DOWN。你也不会得到ACTION_UP,因为还没有ACTION_DOWN。也许你有自己的理由这样做,但通常用户应该能够取消该动作,因此按钮应该在点击(同一个对象上的DOWN和UP)时作出反应。如果动作发生在DOWN上,那么用户无法取消它(即通过将手指移动到物体外并将其提起)。

+0

如果我正确理解OP,这些按钮在单独的活动 – Ole

+0

看起来你是对的 –

+0

通常这些按钮并不重要。我想要在用户拿起手指时接收事件或ActivityB中的什么。 –

相关问题