0

選択したメニュー項目を無効にできるようにしたいと考えています。つまり、メニュー項目は、最初に設定したときにのみ使用できます。その後、完全に無効にする必要があります。これどうやってするの?

私は次のことを試しました:

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

そして、このコードを使用して、「firstrun」後に無効にしました

 mi.setEnabled(false); 

ただし、アプリを強制停止すると、もう一度アプリに戻ります。メニュー項目が有効になります。これを防ぎ、永久に無効にするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

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);
于 2013-07-07T21:11:49.457 に答える