android - pueden - no funcionan los hashtags en instagram 2018
La mejor práctica para mostrar mensajes de error (4)
¿Cuál es la mejor manera de mostrar mensajes de error al usuario?
Supongamos el siguiente escenario (solo por ejemplo, esta pregunta se relaciona con un problema común, cuando se puede producir un error en el servicio, en el hilo, etc.):
- Cargamos algunos datos para algunas pantallas
- Ocurre un error (Internet no está disponible, excepción del servidor, otras excepciones ...)
¿Cómo mostrar el error? Soluciones posibles:
- Mostrar brindis: la forma más sencilla pero no es la mejor (para muchos errores veremos muchos brindis, incluso si la aplicación funciona en segundo plano)
- Mostrar error en algún lugar de la pantalla (por ejemplo, gmail muestra "Sin conexión" en la parte inferior de la lista y propone volver a intentarlo)
¿Cuál es tu experiencia? ¿Cómo se muestran los errores de usuario? ¿Hay algunas guías que explican cuál es la mejor manera?
Cualquier cosa menos una tostada. Echa un vistazo a Croutons: http://android.cyrilmottier.com/?p=773
Depende de la aplicación y de lo que la aplicación pueda hacer una vez que haya cumplido con este error.
Los dos métodos que Google sugiere en la Guía de diseño de materiales para tratar este tipo de mensajes son:
Dialogs (en este caso, el Diálogo de alerta):
y Snackbars :
Para usar su ejemplo: Algunos datos se solicitan desde un servidor remoto, pero debido a algún error o excepción, la recuperación falla y no se devuelve ningún dato.
En este punto, el tipo de mensaje de error dependerá de cómo funcionará la aplicación a partir de ese momento, sin esos datos. Si la aplicación funcionará como está, lo que significa que la búsqueda fue algo similar a una actualización de fondo, lo apropiado para mostrar sería una barra de Snackbar. ¿Por qué?
De la Guía:
Los Snackbars brindan comentarios ligeros sobre una operación al mostrar un breve mensaje en la parte inferior de la pantalla. Snackbars puede contener una acción.
Ligero es realmente el motivo aquí. Si la aplicación funcionará sin esa búsqueda de datos de fondo, no debe bloquear la IU con un mensaje. Simplemente dígale al usuario que las cosas no funcionaron como deberían, para que pueda hacer algo al respecto si le importa.
Aquí hay un ejemplo tomado de la Snackbars :
Para el código: el desarrollador de documentos en Snackbars
Nunca uses una tostada. Un brindis es demasiado pequeño, demasiado breve y puede pasar desapercibido. Utilice un Snackbar.
Pero , en el caso de que su aplicación no funcione o muestre nada más que una pantalla en blanco sin esos datos, lo correcto sería mostrar un cuadro de diálogo de alerta.
Nadie quiere ver nada más que una pantalla en blanco, y si no puede llenarla con datos, debe darle al usuario una pantalla desde la cual puede realizar funciones alternativas, incluso si eso es para salir de la aplicación.
De la guía de alertas:
Las alertas informan al usuario sobre una situación o acción que requiere su confirmación o reconocimiento antes de continuar. Difieren ligeramente en apariencia en función de la gravedad y el impacto del mensaje transmitido.
Las alertas son interruptivas, urgentes y evitan que los usuarios continúen hasta tomar una decisión.
Y
Desambiguación de Snackbars: a diferencia de Alerts, Snackbars presenta información o acciones opcionales pero importantes y generalmente aparecen después de una acción. Por ejemplo, use una alerta para confirmar el descarte de un borrador. Use una barra de aperitivos para presentar una acción de deshacer, porque la acción es opcional y el usuario puede continuar con su tarea principal sin tomar medidas.
Entonces, si la aplicación no funcionará sin esa información, vaya con un cuadro de diálogo de alertas .
He usado el alertDialog ... referir las imágenes. futher google it
Para la atención del usuario.
para la validación de formularios, los textos de edición utilizan el editText.setError("Your error message")
para la conexión a internet falló
para la conexión interna falló con el intento.
Actualización 1
Para mostrar alguna información / mensaje de finalización automática, utilizamos Toast
por ejemplo, notificando a un usuario que su Email was sent Successfully.
Podemos usar tostadas como a continuación
Toast.makeText (contexto, "El correo electrónico se envió con éxito.", Duración) .show ()
Nota: el usuario no puede interactuar con el brindis predeterminado. Consulte también Diseño personalizado de brindis
Otra opción es usar la nueva Snackbar
Esperamos que esto sea útil
Yo diría que depende de si su aplicación actualmente tiene una actividad activa visible o no. Si lo hace, puede utilizar cualquiera de las técnicas ya sugeridas sin confundir al usuario sobre el contexto, etc.
Si el error / mensaje se origina en un código de fondo, por ejemplo, un servicio, y su aplicación no está activa, una notification es una buena alternativa. Además, eche un vistazo a las pautas / patrones descritos en el sitio del developer .