На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Двойной клик на TextView (Android) , как ловить?
    Всем привет!

    Продолжаю писать Android приложение для водителей службы такси. В главном Activity водителей сможет видеть список текущих заказов (уже это как бы сделано). При двойном щелчке на заказ должен открываться экран с полной информацией по заказу, где уже можно будет выполнить некоторые действия по нему. Двойной щелчок выбрали, чтобы исключить случайные нажатия, очень важно, чтобы какие-то ответственные действия нельзя было инициировать случайно. Список заказов в главной форме представлен с помощью TableLayout, в котором TextView - это ячейки таблицы, а просто View - это границы между ячейками в пиксель толщиной. Потом, может быть, переделаю, так как шеф выразил пожелание иметь более приятный интерфейс. Обработчик нажатий вешаю на каждый TableRow c помощью setOnClickListener() - о счастье, работает, все содержимое этих TableRow оказалось прозрачным для кликов! Пока просто для теста вывел AlertDialog.

    Возможно, у меня появятся еще вопросы в рамках этой темы, но сейча вопрос один. Оказалось, что нет такой возможности вроде setOnDoubleClickListener(). В топике на StackOverflow вычитал, что двойные клики можно обрабатывать как жесты в GestureDetector.OnDoubleTapListener. Пока детально это не смотрел. Есть ли в этом смысл? Не проще ли мне запоминать время последнего клика, а при повторном нажатии сравнивать разницу по времени между этими двумя кликами, если онка оказалось очень маленькой, инициировать открытие экрана для заказа. Хотя тут есть трудности тоже.

    Каковы будут ваши мысли на эту тему?
      Homez, превед! Рассказываю: дабл клик - это юзер френдли для Андроида, и за такое надо сразу отламывать руки. Правильно делать так: если надо двойная функциональность, то надо по клику (одинарному) подымать менюшку с возможными действиями, или же сделать отдельные контролы.

      Добавлено
      Поправка: это НЕ юзер френдли.
        Белый негр, а почем не юзер-френдли? Вы меня не убедили, вопрос еще открыт.

        Добавлено
        Цитата Белый негр @
        Правильно делать так: если надо двойная функциональность, то надо по клику (одинарному) подымать менюшку с возможными действиями, или же сделать отдельные контролы.

        Так это и никакая не будет двойная функциональность. По одинарному клику ничего происходить и не будет, других действий в общем списке, связанных с конкретным заказом и не будет.
          Цитата Homez @
          Так это и никакая не будет двойная функциональность. По одинарному клику ничего происходить и не будет, других действий в общем списке, связанных с конкретным заказом и не будет.

          Хорошо, тогда почему не просто клик?

          Цитата Homez @
          Белый негр, а почем не юзер-френдли? Вы меня не убедили, вопрос еще открыт.

          Покажи мне андроид софт с дабл кликом.
            Цитата Белый негр @
            Хорошо, тогда почему не просто клик?

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

            Цитата Белый негр @
            Покажи мне андроид софт с дабл кликом.

            Гм, с этим трудности, я в андроиде новичок:)

            Добавлено
            Ну тут поговорил с шефом, подумали, что может, лучшим вариантом будет добавление в таблицу специальной графы, например, самой первой, в которой для каждого заказа были бы пиктограммки для вызова просмотра деталей заказа (типа глаза), которая бы работала как обычная кнопка. Думаю, что большинство пользователей не будет прокручивать список, водя пальцем именно по графе с кнопками:)
              Цитата Homez @
              Я же писал: чтобы исключить возможность случайного нажатия. Например, при неудачной попытыке прокрутить список.

              В этом случае делают LongClick
              Цитата Homez @
              Гм, с этим трудности, я в андроиде новичок

              Ну я как бы не совсем, так шо инфа 100%

              Цитата Homez @
              Ну тут поговорил с шефом, подумали, что может, лучшим вариантом будет добавление в таблицу специальной графы, например, самой первой, в которой для каждого заказа были бы пиктограммки для вызова просмотра деталей заказа (типа глаза), которая бы работала как обычная кнопка. Думаю, что большинство пользователей не будет прокручивать список, водя пальцем именно по графе с кнопками

              Ад!
                Цитата Белый негр @
                В этом случае делают LongClick

                Это что такое?

                Цитата Белый негр @
                Ад!

                Чем?

                Добавлено
                Сам же писал:
                Цитата Homez @
                Правильно делать так: если надо двойная функциональность, то надо по клику (одинарному) подымать менюшку с возможными действиями, или же сделать отдельные контролы.


                Вот тебе и отдельный контрол.
                  Цитата Homez @
                  Это что такое?

                  http://developer.android.com/reference/and...ckListener.html

                  Цитата Homez @
                  Вот тебе и отдельный контрол.

                  это самый крайний солюшен
                    А, ясно, буду иметь ввиду. Не знал.
                      Ага, лонг клик это родное, а дабл - нет.
                        Цитата Белый негр @
                        Покажи мне андроид софт с дабл кликом.

                        Любой браузер :) Масштабирование страницы до удобного к чтению виду и наоборот.

                        Правда это не основной функционал, так что здесь дабл клик оправдан. Так что в целом согласен.
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0316 ]   [ 15 queries used ]   [ Generated: 27.04.24, 08:44 GMT ]