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()
我得到下面的 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()