我的 PreferenceActivity 有一个菜单。在我的 child 首选项屏幕中,我丢失了该菜单(未弹出)。如何让我的菜单也为 child 弹出?
谢谢。
示例:
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:persistent="true">
<PreferenceCategory
android:title="some category"
android:persistent="true"
android:orderingFromXml="true">
<PreferenceScreen
android:title="some child screen"
android:summary="some child summary">
<PreferenceCategory
...
第一个首选项屏幕有菜单,但是当您单击子屏幕时,没有菜单。如何添加菜单?
最佳答案
我有更好的解决方案,因为 Suriya 的 child 的 PreferenceScreen 会重复显示。
对于子 PreferenceScreen,我使用相同的 PreferenceActivity。因此,首先对于我们想要使用选项菜单的子 PreferenceScreen,我们在 onCreate 方法中将 Intent 设置为我们的 PreferenceActivity:
ourPreferenceScreen = (PreferenceScreen) findPreference("our_preference_screen");
if (ourPreferenceScreen != null) {
Intent intent = new Intent(this, PreferenceActivity.class);
intent.putExtra("ShowOurPreferenceScreen", true);
ourPreferenceScreen.setIntent(intent);
}
然后在相同的 onCreate 方法中,我们检测我们的 PreferenceActivity 是否以额外标志启动。如果是这样,我们切换到想要的 PreferenceScreen:
if (getIntent().getBooleanExtra("ShowOurPreferenceScreen", false)) {
setPreferenceScreen(ourPreferenceScreen);
return;
}
最后我们像这样处理 onCreateOptionMenu 和其他相关的选项菜单方法:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (getPreferenceScreen().equals(ourPreferenceScreen)) {
// your menu code
return true;
}
return super.onCreateOptionsMenu(menu);
}
关于android - 将菜单添加到 child 偏好屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032141/