0

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;
    }
4

1 に答える 1