如何动态设置orderInCategory?

时间:2014-06-15 08:04:28

标签: android android-fragments actionbarsherlock

如何动态创建菜单项时设置orderInCategory。我动态创建的菜单项始终位于先前创建的菜单项的左侧(以xml创建)。

我动态创建的菜单是ActionBarSherlock溢出菜单。

 SubMenu overflowMenu = menu.addSubMenu("Action Item");
         overflowMenu.add(0,SUBMENU_ABOUT,Menu.NONE,"About");
         overflowMenu.add(0,SUBMENU_HELP,Menu.NONE,"Help");
         overflowMenu.add(0,SUBMENU_REPORT,Menu.NONE,"Send Report");
         overflowMenu.add(0,SUBMENU_LOGBOOK,Menu.NONE,"LogBook");




            MenuItem subMenu1Item = overflowMenu.getItem();
            subMenu1Item.setIcon(R.drawable.overflow_menu_trans);

那么如何将此图标放在菜单的最右边?现在,它已经放在xml

中的左侧
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_register"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:icon="@drawable/action_register"
        android:title="@string/menu_register"/>
</menu>

1 个答案:

答案 0 :(得分:1)

@CommonsWare给出了这个答案。实际上要将项目设置到最右边,我必须将orderInCategory设置为更高的值,我将其设置为更低的值。动态地,它可以作为

完成
SubMenu overflowMenu=menu.addSubMenu(0, MENU_ID, 300, "Action Item");

其中300是要设置为更高值的orderId,然后是menu.xml的orderInCategory