【发布时间】:2013-02-25 10:40:50
【问题描述】:
我是 Android 新手。我想构建一个标签格式的应用程序。我发现许多使用了Activity 的文档。在很多情况下也使用了FragmentActivity。我不确定哪个会更好。请建议我应该使用Activity 还是FragmentActivity 以标签格式开始开发?
【问题讨论】:
标签: android android-activity android-fragmentactivity
我是 Android 新手。我想构建一个标签格式的应用程序。我发现许多使用了Activity 的文档。在很多情况下也使用了FragmentActivity。我不确定哪个会更好。请建议我应该使用Activity 还是FragmentActivity 以标签格式开始开发?
【问题讨论】:
标签: android android-activity android-fragmentactivity
ianhanniballake is right。您可以从FragmentActivity 获得Activity 的所有功能。事实上,FragmentActivity 的功能更多。
使用FragmentActivity,您可以轻松构建tab and swap 格式。对于每个选项卡,您可以使用不同的Fragment(Fragments 可重复使用)。因此,对于任何FragmentActivity,您都可以重复使用相同的Fragment。
您仍然可以将Activity 用于单个页面,例如列出某些内容并在下一页中编辑列表的元素。
如果您使用android.app.Fragment,请记住使用Activity;如果您使用的是android.support.v4.app.Fragment,请使用FragmentActivity。永远不要将android.support.v4.app.Fragment 附加到android.app.Activity,因为这会导致抛出异常。
【讨论】:
Activity 而不是 FragmentActivity,并且仍然可以访问 Fragments; this 答案并没有完全这么说(尽管最后一段暗示了这一点)。
FragmentActivity 为您提供Activity 的所有功能以及使用Fragments 的能力,这在许多情况下非常有用,尤其是在使用ActionBar 时,这是在安卓。
如果您仅针对 Honeycomb (v11) 或更高版本的设备,那么您可以使用 Activity 并使用 v11 中引入的原生 Fragments,而不会出现问题。 FragmentActivity 是专门作为 Support Library 的一部分构建的,用于将其中一些有用的功能(例如片段)反向移植回旧设备。
我还应该指出,您可能会发现 Backward Compatibility - Implementing Tabs 培训对您未来很有帮助。
【讨论】:
android.app.Activity 与 android.app.Fragment 一起使用,而不是它们可以互换。
Activity 可以访问片段; FragmentActivity 不再需要。 Activity 或 FragmentActivity 本身不是 Fragments。
如果您在最近的 ADT 包中使用 Eclipse“新建 Android 项目”向导,您将自动将选项卡实现为片段。这使您的应用程序在将来更容易转换为平板电脑格式。
对于简单的单屏布局,您仍然可以使用Activity。
【讨论】: