Я реализовал свои настройки, как показано в официальных руководствах.
У меня есть PreferenceActivity, который создает PreferenceFragment следующим образом:
@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();
}
}
PreferenceFragment загружает предпочтения из ресурсов, и они содержат подэкраны предпочтений, такие как:
<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>
Это хорошо работает до сих пор, но теперь я хочу иметь up-Button
в actionBar, когда будет показан подэкран настроек. Любая идея, как это сделать?
Я попытался установить setDisplayHomeAsUpEnabled(true)
в свою активность, но затем верхняя кнопка отображается только в основных настройках (где это не должно), а не в подэкране.
Мне интересно, что даже в официальных документах подэкран отображается без активной кнопки вверх:
Ссылка на документы: Settings
Любая помощь действительно приветствуется