Я реализовал кнопку onLongClickListener
в Android Dialog
, которая автоматически уменьшает число с помощью таймеров. Вот код
myIncreaseTimer = new Timer();
final Runnable runnable_decrease = new Runnable() {
public void run() {
int txt = Integer.parseInt(length.getText().toString());
txt -= 1;
length.setText(String.valueOf(txt));
if (txt == 0) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
}
};
btnMinus.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
myIncreaseTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(runnable_decrease);
}
}, 0, 300);
return true;
}
});
Когда я нахожусь в деятельности, а не в диалоге, я могу остановить уменьшение с помощью onTouchEvent
, когда пользователь касается экрана
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
return true;
}
Однако я не могу сделать это в диалоговом окне. Более того, диалог не имеет onTouchEvent.
Кто-нибудь знает, как я могу реализовать onTouchEvent
в Dialog
или где я должен остановить таймер увеличения в Dialog
?