Show / Back-Taste auf Android verschachtelte PreferenceScreen?

Ich habe ein zweistufiges PreferenceScreen:

<PreferenceScreen> general settings <PreferenceScreen android:key="adv_settings"> more advanced settings </PreferenceScreen> </PreferenceScreen> 

Mein Problem ist, dass der zweite Bildschirm nicht die Back-up-Taste auf der Aktionsleiste automatisch zeigt. Wie mache ich die Schaltfläche "up" auf adv_settings?

  • Android RandomAccessFile Nutzung aus Ressource
  • Kann die Android JVM auch auf einem PC laufen?
  • Was sollte in Activity / Fragment und ViewModel in MVVM gemacht werden
  • Umgang mit gzipped Inhalt auf Android
  • Warum deklarieren Sie ein Funktionsargument als endgültig?
  • Java.lang.NumberFormatException: Invalid int: ""
  • Eclipse hört auf, Referenzen nach einer Weile hervorzuheben
  • XmlPullParser - Parse verschachtelte Tag
  • 3 Solutions collect form web for “Show / Back-Taste auf Android verschachtelte PreferenceScreen?”

    Sie können den Pfeil hinzufügen, indem Sie einen benutzerdefinierten ActionBar-Stil schreiben, der mit Ihrem Anwendungsthema verwendet werden soll.

    Res / values-v11 / styles.xml: (oder füge diese zu deinem vorhandenen styles.xml hinzu)

     <?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:displayOptions">showHome|homeAsUp|showTitle</item> </style> </resources> 

    Dann wenden Sie dieses Thema in Ihrem AndroidManifest.xml:

     <application android:theme="@style/MyTheme"> 

    Hinweis : Der offensichtliche Weg, diesen Pfeil hinzuzufügen, sollte sein:

     getActionBar().setDisplayHomeAsUpEnabled(true); 

    Sobald der zweite Bildschirm geladen ist, aber ich denke, es gibt einen Android-Bug, bei dem getActionBar () immer das First-Tier-ActionBar-Objekt zurückgibt, im Gegensatz zu dem, das derzeit sichtbar ist, also die Einstellung des Pfeils dynamisch fehlschlägt.

    Dies kann mehr Arbeit sein, aber Sie könnten zwei PreferenceAtivity-Dateien mit jeweils eigenen PreferenceFragment erstellen. Jedes PreferenceFragment verfügt über ein eigenes PreferenceScreen-XML (das erste Level-Screen und das zweite Level-Display). Vom ersten Level-Bildschirm aus starten Sie die zweite PreferenceActivity mit einer Intent innerhalb des Tags. In der zweiten PreferenceActivity kannst du hier das Home-Icon einstellen:

     ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); 

    Und dann auch einen Handler für den Home-Button:

     @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); } return false; } 

    Vermögenswerte:

     FirstPreferenceActivty FirstPreferenceFragment pref_first.xml (layout with PreferenceScreen and Prefernce nodes) SecondPreferenceActivty SecondPreferenceFragment pref_second.xml (layout with PreferenceScreen and Prefernce nodes) 

    Wenn die Schaltfläche nicht automatisch kommt, könnt ihr es manuell hinzufügen, wie auf diesen Links:

    Android: Wie kann man benutzerdefinierte PreferenceScreen?

    http://pastebin.com/334Eip35

    Es gibt einen Beispielcode in der zweiten Antwort dieser SO-Frage und das Snippet darin ist wohl von der anderen Pastebin-Location genommen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.