2013-07-07 69 views
0

我希望能夠在選擇菜單項後禁用它。也就是說,菜單項僅在第一次設置時可用。然後,它應該完全禁用。我怎樣才能做到這一點?在android中永久禁用菜單

我試過如下:

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

而且用這個代碼「firstrun」後,將其禁用

mi.setEnabled(false); 

但是,一旦我強制停止應用程序,並再次回去吧。該菜單項已啓用。 如何防止並禁用它?

謝謝。

+2

線索檢索共享偏好 - sharedPreferences。 Google是你的朋友。 – Simon

回答

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