如何隐藏 android 操作栏中的菜单项?
How to hide menu item in android action bar?
我的目标是隐藏操作栏中的一个菜单项,并在单击菜单项后显示另一个。在我的应用程序中,我使用 Toolbar
。我已经寻找了许多其他问题,但没有找到我需要的。任何帮助将不胜感激。我尝试了下面的代码,但是点击后应用程序崩溃了。
public boolean onOptionsItemSelected(MenuItem item) {
final SwipeRefreshLayout mySwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
switch (item.getItemId()) {
case R.id.action_next:
//code
MenuItem secondItem = (MenuItem) findViewById(R.id.action_next);
secondItem.setVisible(false);
return true;
case R.id.action_previous:
//code
return true;
default:
return super.onOptionsItemSelected(item);
}
}
您可以获得对要在 onCreateOptionsMenu
中隐藏和显示的菜单项的引用,然后在 onOptionsItemSelected
中使一个可见,另一个不可见 onOptionsItemSelected
:
private MenuItem itemToHide;
private MenuItem itemToShow;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
itemToHide = menu.findItem(R.id.item_to_hide);
itemToShow = menu.findItem(R.id.item_to_show);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_next:
// hide the menu item
itemToHide.setVisible(false);
// show the menu item
itemToShow.setVisible(true);
return true;
}
return super.onOptionsItemSelected(item);
}
您重写了错误的函数。
使用这个:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem item = menu.findItem(R.id.action_next);
item.setVisible(false); //hide it
super.onCreateOptionsMenu(menu, inflater);
}
我的目标是隐藏操作栏中的一个菜单项,并在单击菜单项后显示另一个。在我的应用程序中,我使用 Toolbar
。我已经寻找了许多其他问题,但没有找到我需要的。任何帮助将不胜感激。我尝试了下面的代码,但是点击后应用程序崩溃了。
public boolean onOptionsItemSelected(MenuItem item) {
final SwipeRefreshLayout mySwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
switch (item.getItemId()) {
case R.id.action_next:
//code
MenuItem secondItem = (MenuItem) findViewById(R.id.action_next);
secondItem.setVisible(false);
return true;
case R.id.action_previous:
//code
return true;
default:
return super.onOptionsItemSelected(item);
}
}
您可以获得对要在 onCreateOptionsMenu
中隐藏和显示的菜单项的引用,然后在 onOptionsItemSelected
中使一个可见,另一个不可见 onOptionsItemSelected
:
private MenuItem itemToHide;
private MenuItem itemToShow;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
itemToHide = menu.findItem(R.id.item_to_hide);
itemToShow = menu.findItem(R.id.item_to_show);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_next:
// hide the menu item
itemToHide.setVisible(false);
// show the menu item
itemToShow.setVisible(true);
return true;
}
return super.onOptionsItemSelected(item);
}
您重写了错误的函数。
使用这个:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem item = menu.findItem(R.id.action_next);
item.setVisible(false); //hide it
super.onCreateOptionsMenu(menu, inflater);
}