Установите видимость в программном меню 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" был невидимым после регистрации моего приложения и навсегда.
Ответы
Ответ 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() в разных действиях для раздувания разных меню - этот вызов вызывается только один раз.
Приветствия