Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java ME (J2ME) > Запрет многократного нажатия кнопок |
Автор: andrewjr20 29.9.2012, 20:27 |
Добрый вечер Столкнулся с такой проблемой: при работе клиента на j2me (сокеты, связь с асинхронным сервером) пользователи частенько умудряются нажать на одну и ту же кнопку несколько раз, то есть, как пример, в окне выбора продукта успевают нажать кнопку "Выбрать" 3-4 раза до того момента, пока данные уйдут серверу, обработаются, вернутся и обновят экран - в результате серверу уходят те самые 3-4 запроса на выполнение одной и той же операции, от чего хотелось бы уйти. Как можно поступить в данном случае? Есть несколько идей, но в каждой видны жёсткие недочёты: 1 - в конце обработчика каждого нажатия блокировать или вообще удалять кнопку; 2 - в каждом обработчике вешать счётчик нажатий, и проверять, не нажималась ли ещё эта кнопка, и если нажатие уже было - не выполнять действий, а после каждого обновления экрана счётчики на кнопках обнулять; 3 - завести какой-нибудь таймер, и разрешать нажатия только раз в секунду (не особо пока понимаю, как такое будет работать - но это лишь идея). Но может я всё усложняю и есть настройки мидлета, которые запрещают жать часто кнопки? Потому что, например, если по первому пункту блокировать кнопку - многократное хардварное нажатие на первом экране после обновления и появления новых кнопок нажмёт одну из кнопок второго экрана, аналогично и второй пункт. Заранее спасибо |
Автор: AntonSaburov 30.9.2012, 15:39 |
IMHO нагляднее будет блокировать кнопки - чтобы было понятно, что нажимать бесполезно. |
Автор: andrewjr20 30.9.2012, 19:21 |
Завёл пока заглушку - получилось более просто и наглядно: при нажатии кнопки появляется форма с текстом "обработка..." без никаких кнопок, и как только приходят необходимые данные от сервера, рисуется уже та форма, которая соответствует присланным данным. |