如何在两个ActionBar
项目之间交换/切换?
我的操作栏中目前有两个项目,如下面的第一张图片所示 - 请参阅“网格”和“时间线”图标。
我只想显示一个,当用户触摸它时,它应该与另一个交换。所以说网格项目正在显示,并且用户触摸它,时间线项目应该显示并且网格项目应该消失。就像第二张图片一样。
我已经尝试过了,但它似乎不起作用 - 没有发生交换。
private static final int SHOW_AS_ACTION_NEVER = 0;
private static final int SHOW_AS_ACTION_IF_ROOM = 1;
private static final int SHOW_AS_ACTION_ALWAYS = 2;
private Menu menu;
private MenuItem itemGrid;
private MenuItem itemTimeline;
//...
@Override
public boolean onCreateOptionsMenu(Menu m) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.actionbar, m);
menu = m;
itemTimeline = menu.findItem(R.id.action_timeline);
itemTimeline.setShowAsAction(SHOW_AS_ACTION_NEVER);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem mi) {
switch (mi.getItemId()) {
case R.id.action_timeline:
Toast.makeText(this, "Action grid selected", Toast.LENGTH_SHORT).show();
itemTimeline = menu.findItem(R.id.action_timeline);
itemTimeline.setShowAsAction(SHOW_AS_ACTION_NEVER);
itemGrid = menu.findItem(R.id.action_grid);
itemGrid.setShowAsAction(SHOW_AS_ACTION_ALWAYS);
break;
case R.id.action_settings:
Toast.makeText(this, "Action settings selected", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return true;
}