向用户显示错误消息的最佳方式是什么?
假设以下场景(例如,这个问题与常见问题有关,当在服务中,在线程等中可能发生错误时):
如何显示错误?可能的解决方案:
你有什么经历?你如何显示用户错误?是否有一些指南解释什么是最好的方式?
答案 0 :(得分:26)
我使用了alertDialog ..参考图片。进一步谷歌吧
对于用户注意。
表单验证编辑文本使用editText.setError("Your error message")
方法
用于互联网连接失败
用于internent连接失败并重试。
更新1
为了显示一些自动终止信息/消息,我们使用Toast
例如,通知用户您Email was sent Successfully.
我们可以像下面一样使用Toast
Toast.makeText(上下文,“电子邮件已成功发送。”,持续时间).show()
注意:用户无法与默认吐司互动,另请参阅Custom Toast Layout
另一种选择是使用新的Snackbar
希望这会有所帮助
答案 1 :(得分:14)
这取决于应用程序,以及应用程序在满足此要求后能够执行的操作 错误。
Google在Material Design Guide中建议处理这些类型消息的两种方法是:
Dialogs(在本例中为警报对话框):
使用您的示例:从远程服务器请求某些数据,但由于某些错误或异常,提取失败并且不返回任何数据。
此时,错误消息的类型将取决于应用程序在该点上的运行方式,而不包含该数据。如果应用程序将按原样运行,意味着fetch类似于后台更新,则显示的适当内容将是Snackbar。为什么呢?
来自指南:
Snackbars通过在屏幕底部显示简短消息来提供有关操作的轻量级反馈。 Snackbars可以包含一个动作。
轻量级就是这里的原因。如果应用程序在没有获取后台数据的情况下运行,则不应使用消息阻止UI。只是让用户知道事情并没有按照他们应该的方式解决,以便他可以在他关心的情况下采取行动。
以下是guide:
的示例代码:Developer Docs on Snackbars
从不使用Toast。吐司太小,太短暂,可以不被人注意。使用Snackbar。
但是,在您的应用无法运行的情况下,或者只显示没有该数据的空白屏幕时,正确的做法是显示警报对话框。
没有人只想看到空白屏幕,如果你不能用数据填充它,你需要给用户一个屏幕,他们可以从中执行替代功能,即使这是为了退出应用
来自警报指南:
警报告知用户需要他们的情况或行动 在继续之前确认或确认。他们不同 根据的严重程度和影响略有外观 消息传达。
警报是中断的,紧急的,并阻止用户继续进行 直到他们做出决定。
和
Snackbars的消歧:与Alerts,Snackbars相反 通常提供可选但重要的信息或行动 在行动之后出现。例如,使用警报进行确认 丢弃草案。使用快餐栏呈现撤消操作,因为 该操作是可选的,用户可以继续其主要操作 任务没有采取行动。
因此,如果应用在没有该数据的情况下无法运行,请使用Alert Dialog。
答案 2 :(得分:5)
除了祝酒之外的任何东西。 看看面包丁: http://android.cyrilmottier.com/?p=773
答案 3 :(得分:1)
我想说这取决于您的应用程序目前是否具有可见的活动活动。如果是这样,您可以使用已经建议的任何技术,而不会使用户混淆上下文等。
如果错误/消息来自后台代码(例如服务),并且您的应用程序未处于活动状态,则notification是一个不错的选择。另外,请查看developer网站上描述的指南/模式。