2012-09-12 48 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; 
} 

希望这会帮助你。