自定义对话框或对话框主题活动

4
我看到很多开发者选择将他们的活动作为对话框进行主题设置,而不是使用Android对话框并自定义它。
我在互联网上搜索了这个答案,但找不到。有人能给我活动主题方法的优缺点吗?当然,这样做可以给你更多的自由,但是否有任何样式原因要避免自定义标准对话框?
我自己需要在对话框中重复使用片段,所以我创建了一个主题活动来满足我的需求,但现在我遇到了从主题活动检索结果的麻烦。
提前感谢。 Bram
2个回答

1

1) 使用startActivityForResult启动您的活动。
2) 在关闭对话框样式的活动之前,将所需数据添加到意图附加项中,并使用SetResult(int, intent)保存它。
3) 要处理结果,请在父活动的anActivityResult中添加代码,以从保存的意图中检索数据。

没问题。

是的,如果您需要向“对话框”添加重型自定义逻辑,则最好使用样式化活动。 对于简单的警报 - 使用对话框。


首先,感谢您的回复。我知道 startActivityForResult 方法。但是,我的对话框中还有 GridView。当我点击网格中的按钮时,我需要将按钮的信息发送到父活动。我甚至可能需要发送对象列表。这不是要在活动之间传递的太多数据了吗? - Bram
为什么你需要这个?你在按钮按下后关闭对话框吗?如果没有,也许将代码移动到子活动中会更好? - woodshy
是的,我修复了我的问题,通过让一个类在片段中监听事件(该片段位于对话框活动中)。监听类会在按钮被点击时接收到事件,并获得被点击的按钮的引用。在收到事件后,它调用片段来关闭对话框(getActivity.finish())。因此,结构将是:活动(发出开放呼叫)>监听类>对话框活动>片段。谢谢你的帮助。虽然如此,我会接受你的答案,因为它帮助我重新回到正确的轨道上。 - Bram

1

创建自定义对话框更容易(您不必处理onCreate、onPause、屏幕旋转等),并且开销较小。

因此,每当您不想显示比对话框更复杂的内容时,应使用自定义对话框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接