2013-07-14 14 views
6

Mam nowoczesny SettingsActivity przy użyciu PreferenceFragement. Całkowicie zdefiniowałem jego układ w XML. W moim ustawieniu mam pod-ekran preferencji. Kliknięcie na nią powoduje wyświetlenie nowego PreferenceScreen.Android: Jak nawigować z powrotem z preferencji podekranowej za pomocą paska czynności w języku xml?

Wygląda na to, że mogę wrócić do głównego ekranu ustawień tylko za pomocą przycisku Wstecz. Czy istnieje możliwość włączenia nawigacji na podekranie za pomocą ActionBar? Wolałbym włączyć to przez XML.

Dzięki z góry, kaolick

EDIT:

chcę to samo po prawej stronie jak po lewej stronie:

enter image description here

Oto kod według fragment z Google:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- opens a subscreen of settings --> 
    <PreferenceScreen 
     android:key="button_voicemail_category_key" 
     android:title="@string/voicemail" 
     android:persistent="false"> 
     <ListPreference 
      android:key="button_voicemail_provider_key" 
      android:title="@string/voicemail_provider" ... /> 
     <!-- opens another nested subscreen --> 
     <PreferenceScreen 
      android:key="button_voicemail_setting_key" 
      android:title="@string/voicemail_settings" 
      android:persistent="false"> 
      ... 
     </PreferenceScreen> 
     <RingtonePreference 
      android:key="button_voicemail_ringtone_key" 
      android:title="@string/voicemail_ringtone_title" 
      android:ringtoneType="notification" ... /> 
     ... 
    </PreferenceScreen> 
    ... 
</PreferenceScreen> 
+0

Czy nadal masz ten problem? Wiem, żeby to rozwiązać. – ffleandro

+0

@ffleandro Tak, robię. Byłbym zadowolony z twojego rozwiązania. – kaolick

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Mam teraz ten sam problem;) – user1567896

Odpowiedz

1

Najpierw dodaj getActionBar().setDisplayHomeAsUpEnabled(true); w onCreate().

Następnie spróbuj:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if(android.R.id.home == item.getItemId()){ 
     // try one of these: 

     // dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 

     // getFragmentManager().popBackStack(); 

     // finish(); 

     return true; 
    } 

    return super.onOptionsItemSelected(item); 

} 
+0

Próbowałem, ale to nie działa. Jak już mówiłem, mam już nawigację w "Actionbar" w moim "UstawieniachAktywność". Potrzebuję go na moim pod-ekranie (patrz obrazek powyżej). – kaolick