我已经按照官方指南所示实现了我的偏好设置。
我有一个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>
到目前为止这个功能运行良好,但是现在我想在首选项子界面中显示一个 上一步按钮
在 actionBar 中。有什么办法可以实现吗?
我已经在我的 activity 中尝试设置 setDisplayHomeAsUpEnabled(true)
, 但是上一步按钮只会在主首选项中显示(那里不应该有)而不会在子屏幕中显示。
我想知道即使在官方文档中,子屏幕也没有活动的上一步按钮:
![Setting subscreens](https://istack.dev59.com/J3nYi.webp)
文档链接:设置
任何帮助都非常欢迎。
PreferenceFragment
,它显示了偏好设置并自动显示了偏好设置的子屏幕。我没有为子屏幕创建活动或片段类。我不知道如何检查是否显示了子屏幕,以便调用setDisplayHomeAsUpEnabled(true)
,因为我不知道是否存在此接口或回调。 - user1567896