将ActionBar添加到PreferenceActivity

Dav*_*ead 8 java android android-preferences android-activity android-actionbar

我正在尝试Settings Activity使用a PreferenceActivity.问题是ActionBar无论我做什么都不会出现.

我试过getSupportActionBar,getActionBar,setActionBar.什么都行不通.我用ActionBars 看到其他应用程序设置.他们不用PreferenceActivity吗?

Gab*_*tti 18

如果您使用的是AppCompat主题,则必须注意一些要点.

PreferenceActivity 不扩展AppCompatActivity或过时的ActionBarActivity.

作为解决方案,您可以按照自己的方式创建PreferenceFragment并在标准中使用它AppCompatActivity.当然你也可以使用Toolbar.

此外,使用新的22.1+ appcompat,您可以使用AppCompatDelegate将AppCompat的支持扩展到任何Activity.

您可以查看AppCompatPreferenceActivity的官方链接,您可以在其中找到此技术的示例.


小智 5

通过使用从DarkActionBar派生的主题明确地设置SettingActivity主题,我们可以添加回Action Bar.

我也在设置活动设置了一个操作栏,它对我有用.

1.首先在styles.xml中为Settings Activity添加不同的样式

<style name="SettingsTheme" parent="AppTheme"/>
Run Code Online (Sandbox Code Playgroud)

2.然后为版本21(v21/styles.xml)创建一个单独的styles.xml,如下所示

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Settings activity theme. -->
    <style name="SettingsTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
        <item name="android:colorPrimary">@color/sunshine_blue</item>
        <item name="android:colorPrimaryDark">@color/sunshine_dark_blue</item>
    </style>

</resources> 
Run Code Online (Sandbox Code Playgroud)
  1. 最后在您的SettingsActivity 的AndroidManifest标签中,您还需要添加设置主题:

    机器人:主题= "@风格/ SettingsTheme"

这将在Android版本大于或等于21的设备中为您的设置活动添加操作栏.