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);
}