2013-07-14 60 views
6

Tôi có một số SettingsActivity hiện đại sử dụng PreferenceFragement. Tôi đã định nghĩa hoàn toàn bố cục của nó trong XML. Trong cài đặt của tôi, tôi có một màn hình phụ tùy chọn. Bằng cách nhấp vào nó, PreferenceScreen mới sẽ được hiển thị.Android: Cách điều hướng trở lại từ màn hình phụ tùy chọn thông qua thanh tác vụ trong xml?

Có vẻ như tôi chỉ có thể điều hướng trở lại màn hình cài đặt chính bằng cách sử dụng nút quay lại. Có cách nào để bật điều hướng qua ActionBar trong màn hình phụ không? Tôi muốn kích hoạt nó thông qua XML.

Cảm ơn trước, kaolick

EDIT:

Tôi muốn cùng ở bên phải như ở phía bên trái:

enter image description here

Đây là mã theo đoạn trích từ 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

Bạn vẫn có vấn đề này? Tôi biết để giải quyết nó. – ffleandro

+0

@ffleandro Có, tôi có. Tôi rất vui vì giải pháp của bạn. – kaolick

+0

Bạn đã bao giờ tìm ra giải pháp cho vấn đề này chưa? Tôi đang đối mặt với cùng một vấn đề ngay bây giờ;) – user1567896

Trả lời

1

Đầu tiên thêm getActionBar().setDisplayHomeAsUpEnabled(true); trong onCreate().

Sau đó thử:

@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

Tôi đã thử nó nhưng điều này không hoạt động. Như tôi đã nói trước khi tôi đã có điều hướng trong 'Actionbar' trong' SettingsActivity' của tôi. Tôi cần nó trong màn hình phụ của tôi (xem hình trên). – kaolick