Что вы делаете, чтобы защитить пользователя от опасной кнопки в Android? - PullRequest
1 голос
/ 02 ноября 2010

У меня есть приложение, которое включает в себя отслеживание информации с течением времени.Частью приложения является кнопка сброса.Чтобы избежать случайного сброса, я заставил эту кнопку реагировать только на длительные нажатия.Однако этот подход смутил около 20% моих новых пользователей, которые считали, что кнопка сброса не должна работать.

Существует ли более интуитивный (и стандартный) способ защиты кнопки от случайных нажатий?(Если нет, я могу добавить какое-то пользовательское сообщение к моей кнопке ...)

Ответы [ 3 ]

2 голосов
/ 02 ноября 2010

Тило сказал: стандартный ответ - диалоговое окно подтверждения.

Это хорошее чтение, если вы еще этого не сделали:

http://www.codinghorror.com/blog/2010/03/the-opposite-of-fitts-law.html

По сути, сделай его маленьким! Длинный щелчок - хороший ответ, но если под ним нет ярлыка «нажать и удерживать», у пользователей будут проблемы - это нарушает модель пользователя, поскольку пользователи не привыкли делать это (я, вероятно, не не смогу это понять).

На iPhone достаточно стандартно иметь «скользящие» кнопки (например, разблокировку) для подобных операций, так как случайное скольжение намного сложнее. Вы могли бы реализовать нечто подобное, но это может быть излишним для этой проблемы.

1 голос
/ 02 ноября 2010

Еще один голос за Тило и диалог подтверждения. Также Google / Android пытается заставить разработчиков использовать долгое нажатие в качестве шаблона быстрого действия. См. запись блога разработчиков Android в приложении Twitter

0 голосов
/ 26 августа 2016

Все, хотя это своего рода обходной путь, он все еще работает.

case R.id.bReset:
long startTime = System.nanoTime();
boolean running = true;
//show dialog with a single button - cancel. Outside the loop. Upon cancel, set cancelled to true.
//You can use DialogFragment or AlertDialog
while(running && !canceled){
    long elapsed = (System.nanoTime() - startTime) / 1000000;
    if(elapsed > securityTime && !canceled) {//set security time to amount of seconds * 1000
        //Dismiss dialog
        //reset
    }
}
break;

Из принятого в настоящее время ответа:

Как сказал Тило, стандартный ответ - диалоговое окно подтверждения.

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

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