2013-07-14 10 views
6

Ho un moderno SettingsActivity utilizzando PreferenceFragement. Ho definito il layout completamente in XML. Nella mia impostazione ho una schermata di preferenza. Cliccando su di esso viene mostrato un nuovo PreferenceScreen.Android: come tornare indietro dalla schermata delle preferenze tramite la barra delle azioni in xml?

Come sembra, posso solo tornare alla schermata delle impostazioni principali utilizzando il pulsante Indietro. C'è un modo per abilitare la navigazione tramite ActionBar nella schermata secondaria? Preferirei abilitarlo via XML.

Grazie in anticipo, kaolick

EDIT:

voglio lo stesso sul lato destro, come sul lato sinistro:

enter image description here

Ecco il codice secondo snippet da 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

Hai ancora questo problema? So di risolverlo. – ffleandro

+0

@ffleandro Sì, lo so. Sarei felice per la tua soluzione. – kaolick

+0

Hai mai trovato una soluzione per questo problema? Sto affrontando lo stesso problema in questo momento;) – user1567896

risposta

1

Aggiungere prima getActionBar().setDisplayHomeAsUpEnabled(true); in onCreate().

Quindi provare:

@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

L'ho provato ma non funziona. Come ho detto prima, ho già la navigazione in 'Actionbar' nel mio' SettingsActivity'. Ne ho bisogno nel mio schermo (vedi immagine sopra). – kaolick

Problemi correlati