2011-02-28 43 views
0

以前我已經添加了一個ontouch監聽器textviews將做每個觸摸自定義振動。ontouchlisteners in textviews

但是,當我拿着textview它將繼續播放自定義振動。

如何設置,以便它只會振動觸摸每一次甚至當我抱着TextView的

我的onclick試圖和其他幾個聽衆,但它不會做我想要什麼..我需要的TextView做觸摸振動,因爲他們從1個TextView的去另一個

public boolean onTouch(View v, MotionEvent event) 
{ 
    vibratePattern(); 
    return true; 
} 
private void vibratePattern() 
{ 
    Vibrator vibrator; 
    vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
    int dot = 100; 
    int dash = 250; 
    int short_gap = 200; 
    int medium_gap = 500; 
    int long_gap = 1000; 
    long[] pattern101 = { 
     0, 
     dot, short_gap, dash, short_gap, dot, 
     long_gap 
    }; 

    vibrator.vibrate(pattern101, -1); 
} 
+0

能否請你告訴你的'vibratePattern'方法? – 2011-02-28 05:24:54

+0

編輯我的qn以顯示振動模式 – ben 2011-02-28 06:05:22

回答

0

這可能是在你的vibratePattern方法什麼的,但這應該工作,如果你檢查其是否行動只震動一次事件:

if (event.getAction() == ACTION_DOWN) { 
    Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); 
    vibrator.vibrate(100); 
} 

UPDATE:

如果不會與多個視圖的工作,那麼你可以在同一個監聽器附加各方意見,檢查時v參考的變化:

if (previousView != v) { 
    vibratePattern(); 
    previousView = v; 
} 
return true; 
+0

嗯,如果您只觸摸一次,我的振動將會震動一次。但我需要用戶從1 textview移動到另一個textview我拖動他們的手指。因此,當我觸摸並堅持第一個textview時,vibratepattern會被重複調用(我只需要它被調用一次) – ben 2011-02-28 06:05:41

+0

@benjamin我認爲你應該檢查事件的「動作」。請看我更新的答案。我不確定如果你點擊一個視圖並將你的手指拖動到另一個視圖,android會在第二個視圖中調用action = down事件。 – 2011-02-28 07:50:54