显示错误消息的最佳做法

Fla*_*vio 34 android

向用户显示错误消息的最佳方法是什么?

假设以下场景(例如,这个问题涉及常见问题,当服务中出现错误时,在线程等中):

  1. 我们为某些屏幕加载一些数据
  2. 发生错误(Internet不可用,服务器异常,其他异常......)

如何显示错误?可能的解决方案:

  1. 显示祝酒词 - 最简单的方法,但它不是最好的(对于许多错误,我们会看到许多错误,即使应用程序在后台运行)
  2. 在屏幕的某处显示错误(例如,gmail在列表底部显示"无连接"并建议重试)

你有什么经历?你如何显示用户错误?是否有一些指南解释什么是最好的方法?

Qad*_*ain 27

我使用了alertDialog ..参考图片.进一步谷歌吧

对于用户注意.

在此输入图像描述

for form验证编辑文本使用editText.setError("Your error message")方法

用于表单验证编辑

互联网连接失败

在此输入图像描述

因重试而导致internent连接失败.

在此输入图像描述

更新1

为了显示一些自动终止信息/消息,我们使用Toast 例如通知用户Email was sent Successfully.我们可以像下面一样使用Toast

在此输入图像描述

Toast.makeText(上下文,"电子邮件已成功发送.",持续时间).show()

注意:用户无法与默认吐司交互,另请参阅自定义Toast布局

另一种选择是使用新的 Snackbar

在此输入图像描述

希望这会有所帮助

  • 谢谢.但至少有一个代码示例会很好.那个警告图标,是内置的Android drawable还是你自己的drawables之一? (2认同)
  • 您应该只在发生非常重要的事情并且需要用户确认或需要绝对确定他们需要知道时才显示对话框。示例:如果没有互联网连接,您会显示一个对话框,仅当您在没有互联网的情况下无法显示任何内容时,如果您缓存内容并且应用程序仍然可用但不新鲜,您会显示诸如面包丁或应用程序内通知之类的内容并尝试在后台访问您的数据并刷新。小心对话,它非常具有侵入性 (2认同)

Cap*_*Jak 16

这取决于应用程序,以及应用程序在遇到此错误后能够执行的操作.

Google在" 材料设计指南"中建议处理这些类型的消息的两种方法是:

对话框(在本例中为Alert Dialog):

警报对话框

Snackbars:

小吃店

要使用您的示例:从远程服务器请求某些数据,但由于某些错误或异常,提取失败并且不返回任何数据.

此时,错误消息的类型将取决于应用程序从该点开始如何运行,而没有该数据.如果应用程序将按原样运行,意味着fetch类似于后台更新,则显示的适当内容将是Snackbar.为什么?

从指南:

Snackbars通过在屏幕底部显示简短消息来提供有关操作的轻量级反馈.Snackbars可以包含一个动作.

轻量级真的是这里的原因.如果应用程序在没有获取后台数据的情况下运行,则不应使用消息阻止UI.只是让用户知道事情没有按照他们应该的方式运作,这样他就可以在他关心的情况下做些什么.

以下是指南中的示例:

在此输入图像描述

代码:Snackbars上Developer Docs

永远不要使用吐司.吐司太小,太短暂,可以不被人注意.使用Snackbar.

但是,在您的应用程序无法运行的情况下,或者只显示没有该数据的空白屏幕的情况下,正确的做法是显示警报对话框.

没有人只想看到空白屏幕,如果你不能用数据填充它,你需要给用户一个屏幕,他们可以从中执行替代功能,即使这是退出应用程序.

来自警报指南:

警报会告知用户在继续操作之前需要确认或确认的情况或操作.根据所传达信息的严重性和影响,它们在外观上略有不同.

警报是中断的,紧急的,并且阻止用户在做出决定之前继续进行.

从Snackbars消除歧义:与警报相反,Snackbars提供可选但重要的信息或操作,通常在操作后出现.例如,使用警报确认丢弃草稿.使用快餐栏呈现撤消操作,因为操作是可选的,用户可以继续执行其主要任务而无需采取任何操作.

因此,如果应用程序在没有该数据的情况下无法运行,请使用警报对话框.


Mar*_*din 5

除了祝酒之外的任何东西.查看油煎面包块:http://android.cyrilmottier.com/? p = 773