2012-09-12 52 views
0

在我的應用程序:物理菜單按鈕不顯示我使用ActionBarSherlock標籤與片段選項

public class ExampleActivity extends SherlockFragmentActivity{} 

我在操作欄添加了一個選項菜單。問題是,雖然這會在操作欄中單擊虛擬按鈕時顯示選項菜單,但按下物理按鈕時不會這樣做。我想要在按下物理菜單按鈕時顯示選項菜單。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    //return super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.menu_prefs: 
      Intent i = new Intent(this,ShowSettingsActivity.class); 
      startActivityForResult(i, requestCode); 
      return true; 
     case R.id.menu_faq: 
      startActivity(new Intent(this, AboutApp.class)); 
      return true; 
     case R.id.menu_contact: 
      startActivity(new Intent(this, FeedbackApp.class)); 
      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

而且在res /菜單/ options_menu.xml:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/menu_settings" 
     android:title="@string/menu_settings" 
     android:icon="@drawable/ic_settings_dark" 
     android:orderInCategory="100" 
     android:showAsAction="always"> 
     <menu 
      android:id="@+id/e"> 
     <item 
      android:id="@+id/menu_prefs"         
      android:title="@string/menu_prefs"/> 
     <item 
      android:id="@+id/menu_faq"         
      android:title="@string/menu_faq"/> 
     <item 
      android:id="@+id/menu_contact"         
      android:title="@string/menu_contact"/> 
    </menu> 
    </item> 
</menu> 

如果我刪除的子菜單,它會顯示在物理按鈕的點擊選項菜單。

回答

0

(很抱歉,那是什麼東西掉了點我的第一個回答)我不認爲

<menu> XML元素接受的android:id作爲一個屬性。你嘗試刪除它嗎?

闖闖:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 
    return true; // override the useless returned value by super() 
} 
+0

是的,我做到了。物理菜單按鈕按下時沒有任何反應。我也嘗試了以前的解決方案。雖然在按鈕按下時顯示了選項菜單,但虛擬菜單按鈕從應用程序中消失了。 – input

+0

只要我在選項卡中實例化活動,虛擬和物理菜單按鈕上都會顯示菜單按鈕。但是現在我已經實現了Fragments,選項菜單不會出現在物理按鈕單擊上。 – input

+0

我編輯了我的答案 –

0

試試這個代碼:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    getMenuInflater().inflate(R.menu.options_menu, menu); 
    return true; 
} 

希望這會幫助你。