Почему в диалоговом окне прогресса Android нет кнопки отмены?

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

Я не являюсь пользователем или разработчиком Android, но я думаю, что ответ, данный в связанном потоке, довольно приличный: на всех устройствах Android есть аппаратный «задний» ключ. Пользователи должны знать, чтобы нажать Back to back из любой активности, в которой они сейчас находятся.

Таким образом, разработчики пользовательского интерфейса считают, что нет необходимости включать кнопку возврата / отмены GUI. Это можно рассматривать как приложение UI принципа DRY ; Если уже есть один способ сделать что-то, этого достаточно.

Не уверен, что все кнопки отменить … я слышал, что сообщения onCancel () не срабатывают должным образом. Мое решение состоит только в том, чтобы сделать обычную кнопку в диалоговом окне с призывом к возврату всякий раз, когда нажимается кнопка.

private void createCancelProgressDialog(String title, String message, String buttonText) { cancelDialog = new ProgressDialog(this); cancelDialog.setTitle(title); cancelDialog.setMessage(message); cancelDialog.setButton(buttonText, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // Use either finish() or return() to either close the activity or just the dialog return; } }); cancelDialog.show(); } 

То просто используйте простой метод вызова из другого места в вашей деятельности

 createCancelProgressDialog("Loading", "Please wait while activity is loading", "Cancel"); 

Довольно простое решение, но оно делает трюк;) также просто отметить, что cancelDialog – это переменная очистки действий, если вам не нужно называть ее из другого места, тогда вы должны уйти, просто ограничив область действия переменной Это способ.

Ответьте здесь на аппаратный ключ. Я был бы осторожен в обобщении принципа DRY на пользовательские интерфейсы. Есть много случаев, когда вам нужно забивать молоток, забивать одну и ту же точку для пользователя несколько раз, используя заголовки, основной текст, цвета и изображения.

Пользователи не читают «UI», как вы читаете роман. Они сканируют чтение.

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

Будучи пользователем Android и разработчиком, я могу сказать, на мой взгляд, и основываясь на моем понимании платформы, что есть хорошая причина не иметь кнопку отмены по умолчанию в диалоговом окне прогресса отмены.

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

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

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

Однако могут быть случаи, такие как извлечение данных из Интернета, где процесс является «отрывочным» и из-за проблем с подключением, возможно, вы не сможете выполнить запрос и застреваете здесь.

Это, как разработка, позволяет включить диалог для отмены.

Теперь, как пользователь, который четко понимает парадигму интерфейса Android, я знаю, что если я хочу вернуться к тому, что я делал раньше, или «отменить» текущую операцию, я должен нажать на задний ключ.

Как пользователь, ничто не отличается от того, что в Android, клавиша меню часто может отображать скрытые параметры, иногда на простом экране без возможности взаимодействия.

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

Действия и пользовательские интерфейсы имеют поток, вы пропускаете действия и пользовательские «экраны», которые «сложены», а кнопка «назад» по существу «выталкивает» последнюю вещь из стека, чтобы вернуть вас туда, где вы были ранее. Если вы видите диалог в качестве другого из этих действий, вы хотите вытащить его из верхней части стека, чтобы вернуться к тому, что находится внизу, или к предыдущей операции.

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