Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当CustomDialog的活动完成时,如何保持它?_Android_Dialog - Fatal编程技术网

Android 当CustomDialog的活动完成时,如何保持它?

Android 当CustomDialog的活动完成时,如何保持它?,android,dialog,Android,Dialog,我有一个自定义对话框,显示得很好,但它会立即关闭,因为它的活动的finish方法会在显示后立即调用。以前,我用的是祝酒词,在同样的情况下熬夜也没有问题 我很确定问题在于,与Toast消息不同,自定义对话框“属于”活动,因此当活动消失时,对话框也消失了。我曾考虑使用setOnShowListener添加listener,但我认为这行不通——除非listener以某种方式阻止完成。我可以添加一个定时器延迟,但这不是一个很有吸引力的解决方案。什么是好的解决方案 我认为最好将另一个活动显示为对话框 只需

我有一个自定义对话框,显示得很好,但它会立即关闭,因为它的活动的finish方法会在显示后立即调用。以前,我用的是祝酒词,在同样的情况下熬夜也没有问题


我很确定问题在于,与Toast消息不同,自定义对话框“属于”活动,因此当活动消失时,对话框也消失了。我曾考虑使用setOnShowListener添加listener,但我认为这行不通——除非listener以某种方式阻止完成。我可以添加一个定时器延迟,但这不是一个很有吸引力的解决方案。什么是好的解决方案

我认为最好将另一个活动显示为对话框

只需将其添加到应显示为对话框的新活动中

<activity android:theme="@android:style/Theme.Translucent">


但为什么要完成活动?是的,您可以将活动显示为对话框,但我想知道为什么不能避免使用
finish
,然后您只需在从自定义对话框返回时调用
finish
。这就是问题所在-我在调用后调用finish以显示对话框。然后您应该根据其他答案或主题调用
finish
对话框,再次按照另一个答案。是的。谢谢,道格。或者使用是,这是最好的。您可以使用标准活动API,它将对话框的逻辑封装到活动中。谢谢