繁体   English   中英

如何在自定义对话框类中处理onActivityResult

[英]How to handle onActivityResult in a custom dialog class

我试图创建一个继承自Dialog的自定义对话框类,该类将允许用户选择一个联系人。 我可以使用以下方法选择显示的联系人:

this.getOwnerActivity().startActivityForResult(...);

问题在于,当用户选择联系人时,这会在对话框的父活动上调用onActivityResult()。 我想将活动结果的处理封装在对话框类中,而不是父活动中。

这个小伙子问了同样的问题 ,但没有得到可行的答案:

在Android对话框中,如何为startActivityForResult设置onActivityResult?

这可能吗? 似乎想做的一件很基本的事情,所以我认为有办法。

我可以将对话框转换为全新的活动,但是该对话框在应用程序的上下文中可以很好地工作,因此我宁愿不必诉诸于此。

该对话框是其活动的第二位。 当您使用startActivityForResult()启动活动时,对话框将被关闭(活动可能会被回收)。 因此,当您返回YourActivity.onActivityResult() ,该对话框未处于活动状态,实际上,原来的对话框对象已不存在。 您可以再次实例化对话框,显示它,将必要的数据传递给它,然后让它执行某些操作,但这似乎是一个非常糟糕的设计。 而是在活动中处理结果,然后打开一个对话框与用户进行交流。

您可以使用DialogFragment代替Dialog。 @BlackRider已回答对话框是其活动的第二项。 当您使用startActivityForResult()启动活动时,对话框将被关闭

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM