2013-07-14 24 views
6

我有一個現代SettingsActivity使用PreferenceFragement。我完全用XML定義了它的佈局。在我的設置中,我有一個首選子屏幕。通過點擊它,會顯示一個新的PreferenceScreenAndroid:如何通過操作欄在xml中從偏好子屏幕導航回來?

因爲看起來我只能使用後退按鈕導航回主設置屏幕。有沒有一種方法可以通過子屏幕中的ActionBar進行導航?我寧願通過XML啓用它。

由於提前, kaolick

編輯:

我想在右側同樣喜歡在左側:

enter image description here

下面是根據代碼來自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

你仍然有這個問題?我知道要解決它。 – ffleandro

+0

@ffleandro是的,我喜歡。我會很高興你的解決方案。 – kaolick

+0

您是否曾經爲此問題找到過解決方案?我現在面臨同樣的問題;) – user1567896

回答

1

首先在onCreate()getActionBar().setDisplayHomeAsUpEnabled(true);

然後嘗試:

@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

我試過了,但這不起作用。正如我之前說過的,我已在'SettingsActivity'的'Actionbar'中導航。我需要在我的子屏幕中(見上圖)。 – kaolick