押されたときにメソッドを繰り返し実行するボタンが欲しいです。解放されると、メソッドの実行を停止する必要があります。
例: ユーザーがボタンを 5 秒間押し続けます。次に、その 5 秒間、メソッドが何度も実行されます。さらに、繰り返し呼び出されるメソッドは、ボタンがどれくらい押されているかを知る必要があります。
これが私がこれまでに持っているものです。私は使用していonTouchListener
ます:
myButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
myButton.setText("Pressed!");
while(myButton.isPressed()) {
doSomething(event);
}
break;
case MotionEvent.ACTION_UP:
myButton.setText("Press me!");
}
return false;
};
private void doSomething(MotionEvent event) {
// Do some calculation with the time the button is pressed so far
}
});
私の問題は、while-loop
が正常に機能しておらず、ボタンが押された時間を取得する方法がわからないことです。もしかしてイベントで??何か案は?