我的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