2012-03-05 21 views
19

Antes que nada, sé que esto se ha preguntado antes: Button in custom Android Toast?. Esto es casi un duplicado exacto, pero creo que garantiza una nueva pregunta basada en el hecho de que se ha utilizado en aplicaciones, es decir, Gmail para ICS (aparece cuando elimina un mensaje).¿Cómo puedo incluir un botón en una notificación de Toast?

La pregunta vinculada dice que no es posible incluir un botón en Toast porque Toast s no se pueden enfocar. ¿Esto está mal, desactualizado o Gmail encontró una forma de evitarlo?

+0

Puede utilizar un cuadro de diálogo de todos modos ... – androidavid

+4

¿A qué 'tostadas' en Gmail se está refiriendo? Y, más concretamente, ¿cómo demostraste que es un 'brindis'? – CommonsWare

+1

Acabo de probar Gmail en ICS y no pude encontrar en qué caso da un brindis con un botón. Además de tener un Diálogo personalizado o una Actividad transparente personalizada con Diálogo en él, debería ser realmente fácil imitar el aspecto y el comportamiento de un Toast que es prácticamente indistinguible del real. –

Respuesta

1

Si quieres un botón en un brindis, es mejor que renuncies a esa idea. Pero puede usar cuadros de diálogo en lugar de brindis. Usando dailogs, podrá visualizar lo que quiera (la misma función que una tostada). También en el dailog, puedes establecer botones.

+3

Aunque en mi caso funcionaría un cuadro de diálogo, preferiría tener un Toast porque son mucho menos intrusivos: volviendo al ejemplo de Gmail, aparece un Toast con texto y un botón "Deshacer", porque es poco probable que ellos querrían deshacerlo. Un diálogo se volvería bastante molesto si apareciera cada vez que quisiera eliminar mensajes. – jmgrosen

0

Gmail en iOS ofrece un brindis y es una solución mucho mejor que interrumpir el flujo de usuario con un diálogo.

[mensaje estilo de pan tostado en Gmail para iOS] [1] [1]: http://i.stack.imgur.com/LWClq.jpg

Si se utiliza esta opción, asegúrese de que la tostada se visualiza el tiempo suficiente para que el usuario presione deshacer si es necesario. Por lo tanto, 5 segundos en lugar de 2,5-3 segundos en un brindis solo de información.

El otro ejemplo citado por CommonsWare es la retroalimentación en línea que se muestra después de un gesto de deslizamiento. Esto no es un brindis, pero también es una gran manera de proporcionar retroalimentación de que se ha realizado una acción.

0

He extendido el UndoBar mencionado por @Hazem (link) y lo he hecho más genérico para que pueda ser utilizado también para otras acciones. Puede echar un vistazo here.

Cuestiones relacionadas