2012-03-09 4 views
0

Я хотел бы постоянно увеличивать значение переменной при нажатии кнопки.Чтение, если кнопка удерживается

Я использую onClickListener, но он увеличивается только один раз, когда кнопка нажата и отпущена. Как определить, нажата ли кнопка и удерживается ли она?

То, что я хочу что-то вроде «в то время как (ButtonIsBeingHold) {кол ++;}»

Если есть какие-либо другие методы, пожалуйста, мне советы на нем

ответ

1

Вместо использования View.onClickListener, вы могли бы попробуйте использовать View.onTouchListener:

public boolean onTouch(View v, MotionEvent event) { 

} 

Это уволит для различных типов сенсорных событий, таких как:

MotionEvent.TOUCH_UP и Мотя onEvent.TOUCH_DOWN.

Вы можете установить флаг, когда нажата кнопка buttn (TOUCH_DOWN), и начать увеличивать счетчик и останавливаться на TOUCH_UP. Тем не менее, я бы посоветовал не использовать цикл while (true) и попытаться активировать инкрементные события, являющиеся триггером. В этом случае я бы использовал обработчик и передавал ему сообщения с постоянной скоростью. Вы можете увидеть, как используется обработчик, как это для рендеринга и обновление игры в образце проекта Snake, который поставляется с Android SDK:

http://developer.android.com/resources/samples/Snake/index.html

+0

Выглядит здорово, спасибо! –

Смежные вопросы