显示在默认视图顶部的首选项菜单

时间:2012-12-29 20:14:04

标签: android android-fragments android-preferences

我有以下代码。当用户从菜单中选择“设置”时,应该创建首选项视图。它会这样做,但是当用户选择“设置”时,设置菜单会显示在我的默认视图之上,就像它具有透明背景一样。创建设置菜单时,我已经包含了它的样子。

Application picture 正如您所看到的,我的默认视图是空白的,除了屏幕中间的“大文本”,但首选项菜单只显示在它上面。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.menu_settings:
             getFragmentManager().beginTransaction()
             .replace(android.R.id.content, new SettingsMenu())
             .addToBackStack(null)
             .commit();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

通常,您应该开始一项新活动,而不是直接向您的活动添加我认为是PreferenceFragment的活动。

或者,您应该将现有的UI(“大文本”)放在通过replace()调用替换的片段中。就目前而言,您现有的UI似乎不在片段中,或者至少没有标识为android.R.id.content的片段。