3 つの項目からなるメニューがあり、それぞれが単独で画面に表示されます。2 番目の画面で invalidateOptionMenu() を呼び出して、アクション バーの色を更新します。色の変更は、4.1.2 と 4.3 の両方のバージョンでうまく機能します。
しかし、Android 4.3 では、これを呼び出すと、最初の画面のアイテムが 2 番目の画面に表示されます。
これが私のコードです (@Override public void onClick(View v):
if (android.os.Build.VERSION.SDK_INT >= 11){
final ActionBar actionBar = getActionBar();
this.invalidateOptionsMenu();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(couleur)));
}
そして、うまくいかなかった後にそれを試しても:
final MenuItem saveNote = Menu.findItem(R.id.saveNote);
final MenuItem removeNote = Menu.findItem(R.id.deleteNote);
final MenuItem nouvelleNote = Menu.findItem(R.id.nouvelleNote);
nouvelleNote.setVisible(false); //screen 1
saveNote.setVisible(true); //screen 2
removeNote.setVisible(false); //screen 3
onCreateOptionsMenu をオーバーライドする方法は次のとおりです。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
Menu = menu;
getMenuInflater().inflate(R.menu.pumpkin_note, menu);
final MenuItem saveNote = Menu.findItem(R.id.saveNote);
final MenuItem removeNote = Menu.findItem(R.id.deleteNote);
final MenuItem nouvelleNote = Menu.findItem(R.id.nouvelleNote);
nouvelleNote.setVisible(true);
saveNote.setVisible(false);
removeNote.setVisible(false);
return true;
}