2012-03-22 15 views
0

私はこのアンドロイドコードを使用しました。ユーザーが画面に触れると、振動が開始され、3000ミリ秒間続きました。私は常にそのユーザーが画面に触れることを望まない、振動の持続時間は前の時間(3000ミリ秒)と同じになる。私は、振動がランダムな時間持続するたびにランダムを使用したい。私のコードに従ってランダムにどのように使うべきですか?ランダム振動の持続時間

私を助けてください。

public boolean dispatchTouchEvent(MotionEvent ev) 
{  
    if (ev.getAction() == MotionEvent.ACTION_UP) 
    {  
     Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);  
     v.vibrate(3000);  
    }  
    return super.dispatchTouchEvent(ev); 
}  

答えて

3

Random classを使用してください。

private Random rnd = new Random(); 

private int randRange(int min, int max) { 
    return min + rnd.nextInt(max - min); 
} 

public boolean dispatchTouchEvent(MotionEvent ev) { 
    if (ev.getAction() == MotionEvent.ACTION_UP) { 
     Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
     v.vibrate(randRange(min, max)); // integer variables of your choice 
    } 
    return super.dispatchTouchEvent(ev); 
} 

それはあなたを混乱させる場合、私はrandRange方法私が行った方法を書いた理由を理解するためにRandom.nextInt(int)のドキュメントを参照してください。

+0

ありがとうございました。しかし、あなたのrandRage関数は私のためには機能しません。アプリを実行して画面にタッチすると、「強制終了」エラーで閉じられます。 – androidGirl

+1

私の 'randRange'関数は戻り値の型(' int'、修正済み)と括弧を欠いていました。それ以外は、正常に動作します。あなたはすでに気づき、これらの間違いを修正しましたか?そうでない場合は、今すぐ試してください。それでも動作しない場合は、 'randRange'呼び出しを削除し、問題がまだ現れているかどうかを確認してください。 – Irfy

関連する問題