0

I want to added to menu item but a user can choose what he want to see or hide , but I don't know how I can do it . I did this :

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:title="NARZĘDZIA">
        <menu>
            <item
                android:id="@+id/show_point"
                android:icon="@drawable/point"
                android:title="Pokaż wybraną pozycję obiektu" />
            <item
                android:id="@+id/sync"
                android:icon="@drawable/sync"
                android:title="Pojedyńcze odpytanie" />
            <item
                android:id="@+id/show_chooce"
                android:icon="@drawable/show_chooce"
                android:title="Pokaż wybrane obiekty" />
            <item
                android:id="@+id/my_location"
                android:icon="@drawable/position2"
                android:title="Moja lokalizacja" />
        </menu>
    </item>

    <item android:title="APLIKACJA">
        <menu>
            <item
                android:id="@+id/settigs"
                android:icon="@drawable/set"
                android:title="Ustawienia aplikacji" />
            <item
                android:id="@+id/about"
                android:icon="@drawable/about"
                android:title="O programie" />
        </menu>
    </item>
</menu>

Now I want to create a Activity in which user can choose what it will be show , but I don't have idea how I can hide this item on menu

1

2 Answers 2

2

you can change java file

//menu intialation
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    menu.clear();

    MenuItem item =
            menu.add(Menu.FIRST, R.id.dashboard_nodifycation, 3, "NODIFICATION");
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    menu.add(Menu.FIRST, R.id.System_log, 4, "LOGOUT");

    dbHelper = new Database_for_GCM_data(Activity_Drawer_Dashboard.this);
    int unread_count = Integer.parseInt(dbHelper.getUnreadCount());
    // calling function for nodification inflater
    item.setIcon(buildCounterDrawable(unread_count, R.drawable.white_nodification, getApplicationContext()));

    return true;
}
Sign up to request clarification or add additional context in comments.

Comments

0
public class MyActivity extends AppCompatActivity {

    private Menu mToolbarMenu;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //init menu here
        mToolbarMenu = menu;
        getMenuInflater().inflate(R.menu.toolbar, menu);
        setToolbarMenuItemVisibilties();
        return true;
    }

    private void setToolbarMenuItemVisibilties() {
        final MenuItem menuItem1 = mToolbarMenu.findItem(R.id.item1);
        final MenuItem menuItem2 = mToolbarMenu.findItem(R.id.item2);
        final MenuItem menuItem3 = mToolbarMenu.findItem(R.id.item3);
        final MenuItem menuItem4 = mToolbarMenu.findItem(R.id.item4);

        //Set visibilities
        menuItem1.setVisible(true);
        menuItem2.setVisible(true);
        menuItem3.setVisible(false);
        menuItem4.setVisible(false);
    }
}

you can change visibilities any time in activity, but you have to inflate it first

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.