在android中永久禁用菜单

时间:2013-07-07 21:00:32

标签: android android-layout android-menu

我希望能够在选择菜单项后禁用它。也就是说,菜单项仅在第一次设置时可用。然后它应该完全禁用。我怎么能这样做?

我尝试了以下内容:

  MenuItem mi=menu.findItem(R.id.item1));

使用此代码在“firstrun”之后禁用它

 mi.setEnabled(false); 

然而,一旦我强行停止应用程序并再次返回它。菜单项已启用。 如何防止这种情况并永久禁用它?

感谢。

1 个答案:

答案 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);