【问题标题】:Difference between "Java class extends" "AppcompatActivity" vs "Activity" vs "ActionBar" in Android?Android中“Java类扩展”“AppcompatActivity”与“Activity”与“ActionBar”之间的区别?
【发布时间】:2016-02-08 09:08:45
【问题描述】:

Android - 我将开发一个 API 介于 API 15 和最新 API 之间的应用程序。
但我有一个关于“Java 类扩展”的问题。

有什么区别:

  1. Java 类extends AppcompatActivity,以及

  2. Java 类extends Activity,以及

  3. Java 类extends ActionBarActivity

如果有人给出明确的定义,我一定会在我的问题接受的答案上打勾。

【问题讨论】:

  • 取决于您要开发的 Android API 级别。对于当前的 API 级别(> 20),忘记那些兼容/操作栏的东西,只使用一个活动。
  • 扩展ActionBar?以前从未读过..!!!
  • 谢谢。 API 15 到更新的 API。
  • 哦,它是 ActionBarActivity..!!!
  • 通过这个链接。我希望对你有所帮助。 stackoverflow.com/a/23090310/3483989

标签: android android-activity android-actionbar extends appcompatactivity


【解决方案1】:
  • 扩展 ActionBarActivity 为您提供每个 API 级别的 ActionBars 功能 >= 7
  • 通过扩展Activity,您可以避免向您的项目添加额外的项目/库,但您将在低于 11 的 api 级别上缺少 ActionBar

ActionBarActivitySupport Library 的一部分。支持库用于在旧平台上提供新功能。例如,ActionBar 是在 API 11 中引入的,默认情况下是 Activity 的一部分(实际上取决于主题)。相比之下,旧平台上没有ActionBar。所以支持库添加了一个Activity的子类(ActionBarActivity),它提供了ActionBar的功能和UI

  • ActionBarActivity(扩展AppCompatActivity 类)的新弃用版本是一种安全使用的向后兼容类。它的弃用只是提示您直接使用新的AppCompatActivityAppCompatActivity 是一个新的、更通用的实现,它在内部使用 AppCompatDelegate 类。

例如,您从外部库继承了一个活动,而该库又不从AppCompatActivity 继承,但您希望此活动具有着色的材质小部件(视图)。要实现它,您需要在活动中创建AppCompatDelegate 的实例,该活动的override 方法,如addContentView()setContentView() 等(有关方法的完整列表,请参阅AppCompatDelegate javadoc),以及在这些被覆盖的方法中,将调用转发到内部 AppCompatDelegate 实例。 AppCompatDelegate 将完成剩下的工作,您的“老式”活动将被“物化”。

来源:thisthis

【讨论】:

    【解决方案2】:

    扩展AppcompatActivity 很好。AppcompatActivity 可以帮助我们在低api 中使用新功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2021-09-01
      • 2016-03-23
      • 1970-01-01
      • 2017-12-08
      相关资源
      最近更新 更多