Fügen Sie ActionBar einer PreferenceActivity hinzu

7

Ich versuche ein Settings Activity mit einem PreferenceActivity zu erstellen. Das Problem ist, dass ActionBar nicht angezeigt wird, egal was ich mache.

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

    
David Read 12.06.2015, 00:34
quelle

2 Antworten

17

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

Das PreferenceActivity erweitert nicht das AppCompatActivity oder das veraltete ActionBarActivity .

Als Lösung können Sie ein PreferenceFragment erstellen, während Sie es tun, und es verwenden in einem Standard AppCompatActivity . Natürlich können Sie auch ein Toolbar verwenden.

Außerdem können Sie mit der neuen 22.1+ appcompat das AppCompatDelegate verwenden Erweitern Sie die Unterstützung von AppCompat für jede Aktivität.

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

    
Gabriele Mariotti 12.06.2015, 06:58
quelle
4

Durch das explizite Festlegen von SettingActivity mit einem von DarkActionBar abgeleiteten Thema können wir die Aktionsleiste wieder hinzufügen.

Ich habe das gleiche getan, um eine Aktionsleiste in meiner Einstellungen-Aktivität zu haben, und es hat für mich funktioniert.

1.Fügen Sie zuerst einen anderen Stil für Ihre Einstellungen Aktivität in styles.xml

hinzu %Vor%

2. Erstellen Sie dann eine separate styles.xml für die Version 21 (v21 / styles.xml) wie unten angegeben

%Vor%
  1. Endlich möchten Sie im AndroidManifest -Tag für Ihre SettingsActivity das Thema "Einstellungen" hinzufügen:
      

    android: theme="@ style / SettingsTheme"

Dies würde Ihrer Einstellungen-Aktivität in Geräten mit Android-Versionen größer oder gleich 21 eine Aktionsleiste hinzufügen.

    
Anurag Sidana 16.10.2016 11:08
quelle