2

我是 Android 的半新手,我不确定我是否看到了关于使用 Android 的非模态对话框的“大局”。我可以放置多种类型的对话框,但是单击“确定”后我不知道如何使用结果。很明显,当显示一个对话框时,调用的 UI 任务继续它的快乐方式。显然,任何重要对话的目的都是从用户那里获取一些信息以进行进一步处理,但主线程已经继续前进。那么我如何使用对话数据的结果来实际做一些事情呢?

我能看到的唯一方法是将我的结果处理放在“确定”按钮的 onclick 处理程序中,但这对我的思维方式来说似乎相当尴尬和笨拙。尽管如此,这是处理对话结果的“通常和习惯”方式吗?有没有更好的办法?还是我大量遗漏了什么?

作为一个具体的例子,假设我想在列表视图中显示一个文件列表并选择一个要删除的文件。我是否将删除代码放在 onclick 处理程序中?

4

1 回答 1

3

是的,这是使用 Android 对话框的“常规和习惯”方式。您在侦听器中处理结果,请参阅对话框指南中的示例或文档中的日期选择器对话框示例

当您使用活动创建对话框时(您必须设置活动的正确主题),您可以在对话框活动的侦听器中进行处理。或者您可以将值返回给父活动并在onActivityResult回调中处理它们。

您在侦听器中运行的代码应该相当短且快速,因为它运行在主线程上。永远不要让用户等待!如果处理很耗时,请在后台执行。

Android 中模式与非模式(无模式)对话框的注释。默认情况下,所有对话框(以及显示为对话框的活动)都是模态的。您可以通过设置适当的窗口标志来创建无模式对话框(以及显示为对话框的活动)(有关更多详细信息,请参阅问题和答案)。

于 2012-04-04T00:28:00.293 回答