2010-05-31 49 views
3

在我的应用程序中,当单击某个特定图像按钮时,我必须能够计算按下图像按钮的时间。任何人都可以通过给出一些简单的指导或示例代码来帮助我。我真的很喜欢这里。有没有特定的事件监听器来满足这个特定的需求。我正在专门为触摸屏手机编写此应用程序。什么EVENT LISTENER应该用于我的Android应用程序

回答

2

要使用这是什么:

OnTouchListener touchListener = new OnTouchListener(){ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     int action = event.getAction(); 
     Log.d(LOG_TAG, "Action is: " + action); 

     switch (action){ 
     case MotionEvent.ACTION_DOWN: 
      timeAtDown = SystemClock.elapsedRealtime(); 
      break; 

     case MotionEvent.ACTION_UP: 
      long durationOfTouch = SystemClock.elapsedRealtime() - timeAtDown; 
      Log.d(LOG_TAG, "Touch event lasted " + durationOfTouch + " milliseconds."); 
      break; 
     } 
     return false; 
    } 

}; 

button.setOnTouchListener(touchListener); 

timeAtDown是定义为类领域的long,因为它需要调用的touchListener之间持续。使用它你也不会干扰按钮的正常操作;你可以设置一个可以正常工作的点击监听器。注意:直到触摸事件的操作从DOWN(或MOVE)变为UP,才会发生'click'操作。

+0

非常感谢史蒂夫...... :) – Mithraa 2010-05-31 13:36:56

1

使用http://developer.android.com/reference/android/view/KeyEvent.Callback.html的on ***回调进行实验。

例如Button.onKeyDown,将当前时间保存在变量中,Button.onKeyDown计算与上次保存时间的差异。

+0

托尼这个工作正常的键盘手机。您是否可以针对触摸屏手机中的类似功能提出一些提示 – Mithraa 2010-05-31 12:17:42

+0

您确定在触摸屏上失败吗?您尝试过吗? Checkout MotionEvent类 – Pentium10 2010-05-31 12:34:04

+0

那么你可以用手指按住按钮..这至少可以在视觉上工作(只要我将手指放在屏幕上,按钮就会关闭)。 所以我会很惊讶,如果这是不可追踪的(只是正确命名)onKey处理程序.. – 2010-05-31 13:01:59

相关问题