gpt4 book ai didi

android - getActionBar() 在 PreferenceActivity 中返回 null (AppCompat-v7 21)

转载 作者:IT老高 更新时间:2023-10-28 22:17:07 25 4
gpt4 key购买 nike

我已经在 PreferenceActivity 中实现了 DoneBar(操作栏中的两个按钮),如 v20 sdk 示例中提供的那样,但是在将 SDK 和 AppCompat 更新到版本 21 后,我的应用程序在

处崩溃

java.lang.NullPointerException: 尝试在空对象引用上调用虚拟方法 'void android.app.ActionBar.setDisplayOptions(int, int)'

那是因为 getActionBar() 返回 null。并且没有像 ActionBarActivity 中的 getSupportActionBar()

所以我的问题是如何在 PreferenceActivity 中获取该操作栏对象,以便我可以对其应用自定义 View ?

已解决

经过一些研究,我设法通过使用 PreferenceFragmentActionBarActivity 解决了这个问题,因此我可以调用 getSupportActionBar()

最佳答案

我设法通过为我的设置 Activity 指定自定义主题来解决此问题,

<style name="SettingsTheme" parent="style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
</style>

and : android:theme="@style/SettingsTheme" 在 Activity list 中

actionbar 再次显示在 KITKAT 和 LOLIPOP 上,并且(尚未测试)返回到 api v11。我对其进行了测试,它可以在 api 10 上运行(没有预期的操作栏)。

从对 Lollipop 的调试中,FEATURE_NO_TITLE 被设置在 PhoneWindow.java:3243 中:

   if (a.getBoolean(R.styleable.Window_windowNoTitle, false)) {
requestFeature(FEATURE_NO_TITLE);

删除 FEATURE_ACTION_BAR

[编辑]

但是这个action bar不是material主题的,所以还是不完美

[编辑2]

我放弃了 Headers,现在我正在使用来自 github 的 PreferenceFragment backport。现在升级到 appcompact 21 后,我所有的操作栏都一样了。

关于android - getActionBar() 在 PreferenceActivity 中返回 null (AppCompat-v7 21),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26439139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com