2014-10-09 39 views
0

我目前正在嘗試在我的Android應用中檢測到正在進行的觸摸事件。 詳細我想在片段內識別用戶是否觸摸了應用屏幕的任何部分。檢測正在進行的觸摸事件

Android的OnTouchListener按預期工作,除非觸摸事件持續時間超過幾秒而不移動

例如,觸摸的前1-2秒被檢測到,但之後的所有內容都不會。

有沒有像「OnPressListener」或解決方法?

+0

你需要長按監聽? – JoaoBiriba 2014-10-09 19:48:55

+0

是的,類似的東西 – Markus 2014-10-09 19:50:28

回答

0

我終於找到了。

的解決方案是使用一個簡單的OnTouchListener

private boolean pressed = false; 

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 
    if (action == MotionEvent.ACTION_DOWN) { 
     pressed = true; 

    } else if ((action == MotionEvent.ACTION_UP) 
      || (action == MotionEvent.ACTION_CANCEL)) { 
     pressed = false; 
    } 

    return true; 
} 
0

您可以在A按鈕使用

aButton.setOnLongClickListener(new OnLongClickListener() { 
    public boolean onLongClick(View arg0) { 
     Toast.makeText(getApplicationContext(), "Long Clicked " , 
       Toast.LENGTH_SHORT).show(); 

     return true; // <- set to true 
    } 
    }); 

,如果您使用的API < 19,你必須

android:longClickable="true" 

屬性添加到您的A按鈕佈局XML。

+0

感謝您的回答,但只要觸摸持續,我就需要獲得一個事件,而不是觸摸發生後的事件。 – Markus 2014-10-09 19:57:04