如果我想显示带有一些自定义XML的Dialog,我可以使用DialogFragment。
但是我也可以使用一个Activity并给它一个Dialog主题,这很方便,因为活动可以相互通话而片段不能,这使得通信变得更容易。
我不应该这样做吗?有什么优点和缺点?
答案 0 :(得分:3)
如果我想显示带有一些自定义XML的Dialog,我可以使用 DialogFragment。
是的,我们可以在DialogFragment.onCreateView()的onCreateView()模板方法回调中定义布局,以定义自定义布局。
但是我也可以使用Activity而不是给它一个Dialog主题, 这很方便,因为活动可以相互交谈 片段不能,这使沟通变得容易一些。
startActivityForResult(Intent intent, int reqCode)
方法
开始Activity B from Activity A
。当Activity B
完成你的时候
必须通过Activity A
方法将结果传递给setResult(int reqCode,
Intent intent)
。Interface
驱动实现,与通信相比非常容易
在Activites
之间。有关详细信息,请在link后结帐。Fragment
可以轻松地与每个活动进行通信
其他来自Interface
。请查看以上链接了解详情。对于
Tablet UI
我们必须使用片段来实现
可管理和模块化。我不应该这样做吗?有什么优点和缺点?
"Fragment & Activity"
之间可以双向沟通
和"Fragment & Fragment via Activity"
对于Activity B
到Activity A
通讯Activity B
会
销毁并将其结果传递给Activity A
。
Activity.startActivityForResult()
有自己的优势。就像你想通过相机捕捉图像一样,我们使用Implicit Intent
来启动相机Activity
,一旦它捕获图像,它就会在setResult(int reqCode, Intent intent)
中传回图像的URI,从而调用活动{{调用1}}以便它可以检查图像的URI细节。
答案 1 :(得分:1)
DialogFragment被视为显示复杂对话框的Android方式。如果您遇到的唯一问题是与对话中的活动或片段进行通信 - 有一些简单的解决方案。其中之一 - 从片段发送对活动的响应,您可以使用界面。此外,显示DialogFragment比启动新活动更快。 DialogFragment的另一个优点是将数据从片段传递到活动比活动活动更容易(这需要将对象作为意图附加物)。