Skip to content

Add, update Menu item programmatically

Margarita Ostrovskaia edited this page May 5, 2020 · 1 revision

Create menu: res/menu/menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menu_artists"
        app:showAsAction="ifRoom"
        android:icon="@drawable/ic_artist"
        android:contentDescription="@string/label_artists"
        android:title="@string/label_artists" />
    <item
        android:id="@+id/menu_albums"
        app:showAsAction="ifRoom"
        android:icon="@drawable/ic_album"
        android:contentDescription="@string/label_albums"
        android:title="@string/label_albums" />
</menu>

Override methods in Activity:

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // update visability
        menu.findItem(R.id.menu_artists).setVisible(true);
        menu.findItem(R.id.menu_albums).setVisible(false);

        return true;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.menu_artists) {
            Intent newIntent = new Intent(AlbumActivity.this, ArtistActivity.class);
            startActivity(newIntent);
        }
        return true;
    }

Clone this wiki locally