Behalten Sie die Aktionsleiste bei, die beim Ändern von PreferenceScreen angezeigt wird.

Ich versuche, eine Aktionsleiste in meinem Einstellungsbildschirm anzuzeigen. Dazu habe ich in meinem SettingActivity @ den folgenden Code hinzugefü

public class PreferencesActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.preferences_activity);
        getFragmentManager().beginTransaction()
                .replace(R.id.container, new PreferencesFragment()).commit();

            getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

dann den Rest meines Codes in PreferencesFragment. Dies funktioniert einwandfrei, aber sobald ich auf eine PreferenceScreen-Voreinstellung drücke, wird die Aktionsleiste ausgeblendet. Wenn ich zum Einstellungs-Hauptbildschirm zurückkehre, kann ich ihn wieder sehen. Haben Sie eine Idee, wie die Aktionsleiste angezeigt (und mit dem PreferenceScreen-Label aktualisiert) werden soll?

Bearbeiten: Betrachtet man den PreferenceScreen-Code, sieht es so aus, als würde ein Vollbild-Dialogfeld geöffnet, wenn der PreferenceScreen angeklickt wird. Da meine Präferenz einen Titel hat, sollte der Dialog auch einen Titel anzeigen ... aber nicht

    // Set the title bar if title is available, else no title bar
    final CharSequence title = getTitle();
    Dialog dialog = mDialog = new Dialog(context, context.getThemeResId());
    if (TextUtils.isEmpty(title)) {
        dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    } else {
        dialog.setTitle(title);
    }

Antworten auf die Frage(14)

Ihre Antwort auf die Frage