Подтвердить что ты не робот

Установите видимость в программном меню Android

Итак, это то, что я хочу знать. Как я могу настроить видимость меню программно в Android? Вот как у меня есть меню:

public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

public boolean onOptionsItemSelected (MenuItem item){
    switch (item.getItemId()){
        case R.id.menuregistrar:
            break;
        case R.id.menusalir:
            break;
    }
    return true;
}

Но этот код не включен в onCreate, поэтому я не знаю, как установить один элемент видимым или невидимым программным способом (в моем случае я хочу, чтобы "menuregistrar" был невидимым после регистрации моего приложения и навсегда.

4b9b3361

Ответ 1

Поместите этот метод в Activity

public boolean onPrepareOptionsMenu(Menu menu)
{
    MenuItem register = menu.findItem(R.id.menuregistrar);      
    if(userRegistered) 
    {           
        register.setVisible(false);
    }
    else
    {
        register.setVisible(true);
    }
    return true;
}

в более короткой версии вы можете написать:

MenuItem register = menu.findItem(R.id.menuregistrar);      
register.setVisible(!userRegistered);  //userRegistered is boolean, pointing if the user has registered or not.
return true;

Ответ 2

Я бы упростил решение Adil еще дальше со следующим:

public boolean onPrepareOptionsMenu(Menu menu)
{
    MenuItem registrar = menu.findItem(R.id.menuregistrar);      
    registrar.setVisible(!isRegistered);
    return true;
}

Ответ 3

Используйте public boolean onPrepareOptionsMenu (Menu menu), он вызывается каждый раз, когда вы нажимаете кнопку меню и делаете свой материал там. или используйте ваш oncreateoptionsmenu() в разных действиях для раздувания разных меню - этот вызов вызывается только один раз.

Приветствия