繁体   English   中英

在Android ICS操作栏中显示菜单项

[英]Displaying menu items in the Android ICS action bar

我有一个我用Android 2.1编写的应用程序,它使用菜单按钮来显示一些选项。 我想通过ICS中的操作栏溢出按钮提供此菜单,但是我无法让它显示出来。

如果我将目标API更改为15,则底部栏中的旧菜单按钮会在ICS中消失,但操作栏右上角的图标不会替换它,因此无法访问菜单。 我已经尝试将showAsAction属性添加到菜单项,它什么也没做。 我肯定在我的Eclipse构建选项中定位4.0.3。

我想要的只是在使用ICS Holo主题的同时可以访问该菜单,但仍然向后兼容旧设备。 我该怎么做?

通常只需通过实现onCreateOptionsMenu(Menu menu)并在菜单的XML文件中为所需项添加android:showAsAction="ifRoom"来添加这些Action Items。

例如

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

你有没有考虑过这个事实?

编辑:这是一个简单的实现,不久之前对我有用:

@Override
public boolean onCreateOptionsMenu(Menu menu){
    super.onCreateOptionsMenu(menu);
    createMenu(menu);
    return true;
}

private void createMenu(Menu menu){
    MenuItem mnu1 = menu.add(0, 0, 0, "Logout");
    {
        mnu1.setAlphabeticShortcut('a');
        mnu1.setIcon(R.drawable.icon);
        mnu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    }
}

我5分钟前遇到过这个问题。 不知道这是否仍然有用,但这就是我如何解决它:

添加super.setBooleanProperty(“showTitle”,true); 你的onCreate方法

@Override
public void onCreate(Bundle savedInstanceState) {
super.setBooleanProperty("showTitle", true);
super.onCreate(savedInstanceState);
//more code...

这将强制显示操作栏并更换菜单按钮。 我在eclipse中瞄准android 4。 较旧的设备仅将标题显示为标题,当然正在监听默认菜单按钮操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM