2012-11-10 47 views
5

我正在嘗試開發一個功能,其中一個項目的一次敲擊將調用一個意圖轉到另一個活動,並且該項目的長按或雙擊執行其他操作,例如允許您編輯文本。Android:單擊和長按/雙擊兩種不同的事件?

到目前爲止,我只能同時獲得這兩種情況,但不能單獨發生。有沒有人有任何想法?

public boolean onTouchEvent(MotionEvent e) { 
    return gestureScanner.onTouchEvent(e); 
} 


public boolean onSingleTapConfirmed(MotionEvent e) { 
    Intent i = new Intent(getContext(), SecondClass.class); 
    getContext().startActivity(i); 

    return true; 
} 

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } 
public void onLongPress(MotionEvent e) { 
    Toast.makeText(getContext(), "Edit feature here", Toast.LENGTH_SHORT).show(); 

} 
+0

Postsomecode,所以我可以糾正它 – RajeshVijayakumar

回答

6

我設法解決了這個問題。事實證明,我所需要做的就是在onDown()處理程序中將返回值從false更改爲true

public boolean onTouchEvent(MotionEvent e) { 
    return gestureScanner.onTouchEvent(e); 
} 

public boolean onSingleTapConfirmed(MotionEvent e) { 

    Intent i = new Intent(getContext(), SecondClass.class); 
    getContext().startActivity(i); 

    return true; 
} 

public boolean onDown(MotionEvent e) { return true; } 


public void onLongPress(MotionEvent e) { 
    Toast.makeText(getContext(), "Edit Feature", Toast.LENGTH_SHORT).show(); 

} 
+0

也爲我工作。 –

4

使用GestureDetector的SimpleOnGestureListener有你想onSingleTapConfirmed()onLongPress()onDoubleTap()方法。

+2

我一直在使用手勢檢測器。如果我把我的意圖放在onSingleTapConfirmed()方法中,它不會執行任何操作。它只是使onLongPress()在單擊上工作: –

+0

我已經添加了代碼。 –

+0

你要添加什麼類型的視圖?它看起來像你想要一個TextView,可以成爲一個長按的EditText。 – Sam