Ich habe meine Einstellungen wie in den offiziellen Richtlinien dargestellt implementiert.Zeige-Schaltfläche in actionBar in Subscreen-Einstellungen
Ich habe eine PreferenceActivity die die PreferenceFragment wie folgt erzeugt:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null)
{
Bundle bundle = new Bundle();
_widgetID = extras.getInt(GlobalSettings.EXTRA_WIDGET_ID);
bundle.putInt(GlobalSettings.EXTRA_WIDGET_ID, _widgetID);
WidgetSettingsFragment fragment = new WidgetSettingsFragment();
fragment.setArguments(bundle);
getFragmentManager().beginTransaction().replace(android.R.id.content,
fragment).commit();
}
}
Die PreferenceFragment die Präferenzen von den Ressourcen geladen und sie enthalten eine Präferenz Subscreen wie folgt aus:
<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>
Das funktioniert gut so weit, aber jetzt möchte ich eine up-Button
in der actionBar haben, wenn der Subscreen Einstellungen angezeigt wird. Irgendeine Idee, wie man das erreicht?
Ich habe versucht, setDisplayHomeAsUpEnabled(true)
in meiner Aktivität zu setzen, aber dann wird der up-Button nur in den Haupteinstellungen angezeigt (wo es nicht sollte) und nicht im Subscreen.
Ich wundere mich, dass auch in den offiziellen Dokumenten die Subscreen ohne aktive up-Taste angezeigt wird:
Link zu der Dokumentation: Settings
Jede Hilfe sehr willkommen
ist
Afaik nach Design Beratung von Google , ist die Zurück-Taste des Systems für solche Situationen besser als die Navigation nach oben. Andernfalls, wenn Sie Ihre eigene neue Aktivität erstellen, können Sie sehr gut mit getActionBar() fertig werden. SetDisplayHomeAsUpEnabled (true) für * diese * bestimmte Subscreen-Aktivität. – webuster
Es gibt diese fast genau die gleiche Frage: http://StackOverflow.com/Questions/11971800/Sethomebuttonenabled-on-preferenceactivity-and-nested-preference – Mdlc
Das Problem ist, dass ich nur ein 'PreferenceFragment' habe, das die Einstellungen und automatisch zeigt der Subscreen der Einstellungen. Ich habe keine Aktivität oder Fragmentklasse für den Subscreen. Ich habe keine Ahnung, wie ich überprüfen kann, ob der Subscreen angezeigt wird, um 'setDisplayHomeAsUpEnabled (true) 'aufzurufen, da mir dafür keine Schnittstelle oder Callback bekannt ist. – user1567896