какой список событий я должен использовать для моего приложения для Android - PullRequest
3 голосов
/ 31 мая 2010

В моем приложении, когда нажата и удерживается одна конкретная кнопка изображения, я должен иметь возможность рассчитать время, в течение которого кнопка изображения удерживалась нажатой. Может ли кто-нибудь помочь мне, дав простое руководство или пример кода. Я действительно застрял здесь. Есть ли какой-либо конкретный приемник событий для этого конкретного требования. Я пишу это приложение специально для телефонов с сенсорным экраном.

Ответы [ 2 ]

2 голосов
/ 31 мая 2010

То, что вы хотите использовать, это:

OnTouchListener touchListener = new OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        Log.d(LOG_TAG, "Action is: " + action);

        switch (action){
        case MotionEvent.ACTION_DOWN:
            timeAtDown = SystemClock.elapsedRealtime();
            break;

        case MotionEvent.ACTION_UP:
            long durationOfTouch = SystemClock.elapsedRealtime() - timeAtDown;
            Log.d(LOG_TAG, "Touch event lasted " + durationOfTouch + " milliseconds.");
            break;
        }
        return false;
    }

};

button.setOnTouchListener(touchListener);

timeAtDown - это long, определенное как поле класса, поскольку оно должно сохраняться между вызовами touchListener. Используя это, вы не мешаете нормальной работе кнопки; Вы можете установить прослушиватель щелчка, который будет работать правильно. Примечание. Операция «щелчка» не происходит до тех пор, пока действие касания не изменится с ВНИЗ (или ПЕРЕМЕЩЕНИЕ) на ВВЕРХ.

1 голос
/ 31 мая 2010

Эксперимент с обратными вызовами on *** от http://developer.android.com/reference/android/view/KeyEvent.Callback.html.

Например, Button.onKeyDown, сохранить текущее время в переменной, а Button.onKeyDown вычислить разницу с последним сохраненным временем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...