如果我想显示一个带有一些自定义XML的对话框,我可以使用DialogFragment。DialogFragment与主题为对话框的活动相对吗?
但是我也可以使用一个Activity来给它一个Dialog主题,这很方便,因为活动可以互相交谈,而片段不能,这使得交流变得更容易一些。
有没有什么好的理由说明我不应该这样做?优缺点都有什么?
如果我想显示一个带有一些自定义XML的对话框,我可以使用DialogFragment。DialogFragment与主题为对话框的活动相对吗?
但是我也可以使用一个Activity来给它一个Dialog主题,这很方便,因为活动可以互相交谈,而片段不能,这使得交流变得更容易一些。
有没有什么好的理由说明我不应该这样做?优缺点都有什么?
DialogFragment被认为是显示复杂对话框的Android方法。如果您遇到的唯一问题是与活动或对话框中的片段进行通信 - 则有一些简单的解决方案。其中之一 - 发送响应来自片段的活动,您可以使用界面。此外,显示DialogFragment比启动新活动更快。 DialogFragment的另一个优点是,从片段到活动的数据传递比从活动到活动更容易(这需要将对象作为意图附加组件)。
如果我想显示一个带有一些自定义XML的对话框,我可以使用一个 DialogFragment。
是的,我们可以在用于定义自定义布局的DialogFragment.onCreateView()的onCreateView()模板方法回调中定义布局。
不过,我也可以用一个活动来代替,并给它一个对话的主题, 这是方便,因为可以活动,而 片段不能彼此交谈,这让通信变得更容易一些。
startActivityForResult(Intent intent, int reqCode)
方法,其中 开始Activity B from Activity A
。当Activity B
完成时,您必须将结果 通过setResult(int reqCode, Intent intent)
方法传递给Activity A
。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图像的背面,因此调用活动onActivityResult()
被调用,以便它可以检查图像的URI的细节。
'两个相同活动的片段可以很容易地通过接口相互通信.'他们可以通过基础活动相互沟通,但是如果你从活动 - >片段 - >片段因为现在你必须从碎片中去掉实现细节并将它们放到Activity中,导致大量的臃肿代码 – KaliMa
@Kalima:你正在谈论的情况Activity - > Fragment - > Fragment,在这种情况下,第二片段必须被嵌套片段意思是片段1的孩子。你不需要直接从活动传递给第二片段。你应该将事件传递给Fragment 1,然后Fragment1将事件传递给Fragment2。详情请查看以下链接。 http://stackoverflow.com/questions/14831690/inter-fragment-communication-applied-to-nested-fragments –