如何调用DialogPreference中的默认按钮处理程序?

时间:2012-09-26 16:37:46

标签: android android-preferences android-dialog

我希望我的程序存储远程服务的凭据,因此用户可以在首选项中设置一次,而不会再次这样做。

所以我已经创建了一个DialogPreference子类,我的类显示了一个很好的对话框,其中包含两个用于登录和密码的字段。很好。

现在我想在用户输入数据并点击确定时验证数据,只是为了防止存储错误登录时的愚蠢情况,我们必须向用户发出警告并要求他再次输入数据。

这是第一个问题:单击按钮时DialogPreference的默认行为正在关闭(我想知道为什么?) - 当然我可以覆盖onDialogClosed()并在那里验证登录,但对话框无论如何都会关闭如果我调用super.onDialogClosed()或不调用。

好的,经过几个小时的搜索和尝试后,我发现an answer乍一看看起来很棒:正面按钮上的点击处理程序允许我想要的东西。但另一个问题是:当原始点击处理程序被替换时,对话框不再关闭。调用super.onDialogClosed()没有帮助;我假设这种方法只是一个不提供任何控制的通知。

那么如何以编程方式关闭DialogPreference并获得正面结果?由于我替换了我的肯定按钮的默认点击处理程序,我想我需要自己调用旧处理程序,但是如何做到这一点?

1 个答案:

答案 0 :(得分:2)

在完成验证后,您是否尝试过调用Dialog类的dismiss()方法?

喜欢:getDialog().dismiss()