2013-02-23 80 views

回答

1

你必须使用onTouch()方法,它允许检查如ACTION_UP和ACTION_DOWN 中的onCreate指定它这样一个按钮()

btn.setOnTouchListener(this); 

然后在onTouch()动作

@Override 
public boolean onTouch(View arg0, MotionEvent arg1) { 
    switch (arg1.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     //Start measuring time and when action = up calculate difference in time 
    } 

    return false; 
} 
+0

它如何计算的时间差? – hakiko 2013-02-23 22:41:13

+0

那么检查当前的时间,然后再次检查。 – 2013-02-23 22:42:42

+0

感谢您的帮助。下面的代码工作 – user2103350 2013-02-25 08:12:24

0

我不确定长按是多长时间,但如果您不需要长达两秒钟,我会为该按钮注册一个onLongClickListener。然后让听众更新颜色。

+0

button2.setOnTouchListener(新OnTouchListener(){ 公共布尔onTouch(视图V,MotionEvent事件){ 如果(event.getAction()== MotionEvent.ACTION_DOWN){ \t倒计时= System.currentTimeMillis的();如果(event.getAction()== MotionEvent.ACTION_UP) } { \t timeUp = System.currentTimeMillis的();如果 (timeUp - 倒计时> 2000)Toast.makeText(getApplicationContext(), “> 2秒”, Toast.LENGTH_LONG).show(); } return true; } }); – user2103350 2013-02-25 08:28:07