我希望能够在选择菜单项后禁用它。也就是说,菜单项仅在第一次设置时可用。然后它应该完全禁用。我怎么能这样做?
我尝试了以下内容:
MenuItem mi=menu.findItem(R.id.item1));
使用此代码在“firstrun”之后禁用它
mi.setEnabled(false);
然而,一旦我强行停止应用程序并再次返回它。菜单项已启用。 如何防止这种情况并永久禁用它?
感谢。
答案 0 :(得分:3)
您必须在某处保留您的数据。在这种情况下,我建议使用Shared Preferences这是存储简单布尔值和其他小数据的首选方法,每个小数据都有一个特定的密钥。在您的情况下,一旦用户点击了菜单项,请致电
// Where this is a Context such as your Activity
SharedPreferences sp = PreferenceManager.getSharedPreferences(this);
sp.edit().putBoolean("MENU_CLICK", true).apply();
// Use commit() in place of apply() if you support pre-Gingerbread devices
然后在onPrepareOptionsMenu()
中,使用
SharedPreferences sp = PreferenceManager.getSharedPreferences(this);
// default false to show on first run
final boolean haveClickedMenu = sp.getBoolean("MENU_CLICK", false);
mi.setEnabled(!haveClickedMenu);