之前我已经为textviews添加了一个ontouch监听器,每次触摸都会进行自定义振动。
然而,当我按住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 :(得分:0)
这可能是您的vibratePattern
方法中的某些内容,但如果您检查了对该事件的正确操作,这应该只能运行一次并振动:
if (event.getAction() == ACTION_DOWN) {
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(100);
}
<强>更新强>
如果这不适用于多个视图,那么您可以将相同的侦听器附加到所有视图,并检查v
引用何时更改:
if (previousView != v) {
vibratePattern();
previousView = v;
}
return true;