2012-10-24 63 views
0

在我的應用程序中,我有一個選項菜單。它有2個按鈕。根據布爾值,我想顯示/隱藏其中一個按鈕。我有下面的代碼,但它不隱藏按鈕。我怎樣才能做到這一點?如何在運行時隱藏選項菜單按鈕

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.layout.menushowmoredetails, menu); 
     return true; 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     if(displayRotaDetails.equalsIgnoreCase("false")){ 
      if(item.getItemId() == R.id.moredetails) 
      item.setVisible(false); 
      } 

     switch (item.getItemId()) { 

    case R.id.back: 

     onBackPressed(); 

     return true; 

    case R.id.moredetails: 

回答

1

您必須使用onPrepareOptionMenu方法是這樣的:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    super.onPrepareOptionsMenu(menu); 

// add your conditions here and change 0 with the R.id.moredetails item postion. 
if(displayRotaDetails.equalsIgnoreCase("false")){ 
menu.getItem(1).setVisible(false); 
} 
} 
+0

嗨阿尼斯,我使用的是哪個onOptionsMenuClosed或onPrepareOptionMenu? – turtleboy

+0

我試過onOptionsMenuClosed(菜單菜單),但按鈕不隱藏。我用menu.getItem(1).setVisible(false);因爲按鈕是菜單中的第二個按鈕 – turtleboy

+0

對不起,您必須使用onPrepareOptionsMenu。 –