无法在ActionBarSherlock中创建选项菜单

3

我正在尝试通过ActionBarSherlock在Android 2.3应用程序中实现选项菜单。但是它不会显示。这里有一个简单的XML布局文件“breadcrumb_bar_menu”作为选项菜单:

<?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:id="@+id/inbox"
       android:icon="@drawable/topbar_btn_inbox"      
       android:title= "@string/about" />    

 <item android:id="@+id/sent"
       android:icon="@drawable/topbar_sent"      
       android:title="@string/about" />    
    </menu>

以下是我从SherlockActivity继承的活动:

    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.breadcrumb_bar_menu, menu);
    return true;
}

但是我在活动中看不到选项菜单,我做错了什么吗?

你正在测试应用的哪个版本的Android操作系统?它有硬件菜单按钮吗? - Shajeel Afzal
@ShajeelAfzal 请认真阅读我的问题。我说的是版本问题。 - MainstreamDeveloper00
5个回答

3

在菜单的xml项目中,包括android:showAsAction="ifRoom"属性。

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/inbox"
       android:showAsAction="ifRoom"
       android:icon="@drawable/topbar_btn_inbox"      
       android:title= "@string/about" />    

    <item android:id="@+id/sent"
       android:showAsAction="ifRoom"
       android:icon="@drawable/topbar_sent"      
       android:title="@string/about" />    
 </menu>

1
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.actionoption, menu);
    return true;
}

0
为了使选项菜单在其他API的ActionBarSherlock中正常工作,我进行了以下操作:
菜单文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/navigateMenu" 
android:icon="@drawable/icon"
android:title="Menu"
android:orderInCategory:"9"
android:showAsAction="always"
android:titleCondensed="Menu">
<menu>
<item android:id="@+id/id1"
android:icon="@drawable/option1"
android:title="option1" />
<item android:id="@+id/id2"
android:icon="@drawable/option2"
android:title="option2" />
<item android:id="@+id/id3"
android:icon="@drawable/option3"
android:title="option3" />
</menu>
</item>
</menu>

在您的Activity代码中: 使用SHOW_AS_ACTION_ALWAYS属性,获取父菜单项的引用并将其附加到操作栏上。 请参阅以下代码:
活动文件:
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.sample_menu, menu);

//To make optionmenu visible on Actionbar for 2.3.3

menu.findItem(R.id.navigateMenu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
        return true;
    }

0

你需要告诉系统你将使用菜单:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

0

您需要为设备设置导航模式。 如果您的设备有硬菜单键,则不会看到菜单选项的三个点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接