7

Ich versuche, eine SettingsActivity mit einem PreferenceActivity zu machen. Das Problem ist, dass die ActionBar nicht angezeigt wird, egal was ich mache.Hinzufügen von ActionBar zu einer PreferenceActivity

Ich habe versucht getSupportActionBar, getActionBar, setActionBar. Nichts funktioniert. Ich sehe andere Apps Einstellungen mit ActionBar s. Verwenden sie nicht PreferenceActivity?

+1

Ja, vor allem Leute verwenden PreferenceActivity für Aktivität, die Einstellungen enthält. Ich benutze normale Aktivität und handle alles alleine. – Varundroid

+0

Überprüfen Sie dieses http://stackoverflow.com/questions/17849193/how-to-add-action-bar-from-support-library-into-preferenceactivity – thealeksandr

Antwort

17

Wenn Sie ein AppCompat-Thema verwenden, müssen Sie einige Punkte beachten.

Die PreferenceActivityerstreckt sich nicht die AppCompatActivity oder die veraltete ActionBarActivity.

Als Lösung können Sie eine PreferenceFragment erstellen, wie Sie tun, und es in einem Standard-AppCompatActivity verwenden. Natürlich können Sie auch eine Toolbar verwenden.

Darüber hinaus können Sie mit der neuen 22.1+ appcompat die AppCompatDelegate verwenden, um die Unterstützung von AppCompat auf jede Aktivität zu erweitern.

Sie können diesen offiziellen Link zu AppCompatPreferenceActivity überprüfen, wo Sie ein Beispiel für diese Technik finden können.

+0

Link ist jetzt gebrochen .... behoben. – SimonH

4

Durch die explizite Einstellung von SettingActivity mit einem von DarkActionBar abgeleiteten Theme können wir die Aktionsleiste wieder hinzufügen.

habe ich das gleiche eine Aktionsleiste in meiner Einstellungen Aktivität für mich und es hat funktioniert zu haben.

1.First einen anderen Stil für Ihre Einstellungen Aktivität in styles.xml hinzufügen

<style name="SettingsTheme" parent="AppTheme"/> 

2.Then ein separates machen styles.xml für die für die Version 21 (V21/styles.xml wie unten

gegeben)
<?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> 
  1. Endlich in der AndroidManifest Tag für Ihre SettingsActivity Sie wollen auch die Einstellungen Thema hinzuzufügen:

    android: theme = "@ style/SettingsTheme"

Dieses eine Aktionsleiste auf Ihre Einstellungen hinzufügen würde Aktivität in Geräten mit Android-Versionen Reibe als oder gleich 21.

Verwandte Themen