我的Activity
上有一个选项菜单,其中MenuItem
“开始”。当选择MenuItem
时,我想更改菜单,使其包含MenuItem
“停止”。最后,当选择“停止”时,我想回到“开始”。如何在Android的选项菜单上更改MenuItem?
这是我的代码不工作的部分。我有两个“开始”和“停止”,在mymenu.xml
列出我也许应该删除“停止”创建菜单时:
public class MyActivity extends Activity {
private boolean isStarted = false;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
menu.removeItem(R.id.stop);
inflater.inflate(R.menu.mymenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.start:
isStarted = true;
return true;
case R.id.stop:
isStarted = false;
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(isStarted) {
menu.removeItem(R.id.start);
menu.add(R.id.stop);
} else {
menu.removeItem(R.id.stop);
menu.add(R.id.start);
}
return true;
}
}
当菜单创建时,您是否已尝试删除“停止”?代码看起来不错。我找不到任何会导致除此之外的问题。 – 2010-11-16 22:40:01
@Octavian:我尝试'menu.removeItem(R.id.stop);''get'enMenuInflater();'之后',但它不起作用。我要么得到两个菜单项,一个“开始”和一个“假”(应该是“停止”),或者当我应该显示时菜单崩溃。 – Jonas 2010-11-16 22:44:21
你要在哪里调用'removeItem()'?在'onPrepareOptionsMenu()'? – 2010-11-16 22:46:31