【发布时间】:2014-02-21 19:45:01
【问题描述】:
我已按照官方指南中的说明实施了我的偏好。
我有一个 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 中有一个up-Button。知道如何实现吗?
我尝试在我的活动中设置setDisplayHomeAsUpEnabled(true),但向上按钮仅显示在主要首选项中(不应该显示的位置)而不是子屏幕中。
我想知道即使在官方文档中,子屏幕也显示没有活动的向上按钮:
文档链接:Settings
非常欢迎任何帮助
【问题讨论】:
-
Afaik,根据 Google 的设计建议,在这种情况下,系统返回按钮比向上导航更可取。否则,如果您创建自己的新 Activity,您可以很好地为 那个 特定子屏幕 Activity 使用 getActionBar().setDisplayHomeAsUpEnabled(true)。
-
有一个几乎完全相同的问题:stackoverflow.com/questions/11971800/…
-
问题是我只有一个
PreferenceFragment,它显示首选项并自动显示首选项的子屏幕。我没有子屏幕的活动或片段类。我不知道如何检查是否显示子屏幕以调用setDisplayHomeAsUpEnabled(true),因为我知道没有接口或回调。
标签: android settings preferences preferenceactivity preferencefragment