ActionBar 对象返回为 null

ActionBar object is returned as null

我得到下面的 actionBar 对象为 null,因此在执行 actionBar.setDisplayHomeAsUpEnabled(true) 时得到一个 NullPointerException。以下是我的代码,它是从片段的 onResume 调用的。

ActionBar actionBar = getActivity().getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

Followwing 是我在 onCreate 中应用到 activity 的主题:

 <style name="MyActionBarTheme" parent="Theme.AppCompat.Light">

        <item name="actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
        <item name="actionMenuTextColor">@color/green</item>
        <item name="colorPrimary">@color/green</item>
        <item name="colorPrimaryDark">@color/greenD</item>

    </style>

我的应用程序将最低 api 级别设置为 14。 请帮助我,解释为什么 ActionBar 对象返回为 null。

编辑: getActivity().getActionBar(); returns Fragment 中的空值。

当您使用 AppCompatActivity 而不是 getActionBar() 时,您需要使用 getSupportActionBar()

编辑

当您使用 AppCompat 主题时,您必须使用 AppCompatActivity

示例代码如何获取 ActionBar:

Activity activity = getActivity();
if(activity != null && activity instanceof AppCompatActivity) {
   AppCompatAcitivyt appCompatActivity = (AppCompatActivity) activity;
   ActionBar actionBar = appCompatActivity.getSupportActionBar();
   //your code
}

如果您使用 appCompat,您需要使用 getSupportActionBar() 而不是 getActionBar()