如何对android应用程序中的菜单项进行排序';s选项菜单?

如何对android应用程序中的菜单项进行排序';s选项菜单?,android,menuitem,android-optionsmenu,Android,Menuitem,Android Optionsmenu,我创建了一个选项菜单,并填充了几个菜单项。由于某些原因,添加菜单项时的顺序不符合要求 为了保证菜单项按我们希望的顺序显示,在创建之后需要执行排序步骤。但是我搜索了android开发文档,没有找到这样做的方法(或者只是我没有找到) 是否有任何解决办法来实现这一点?请告知 谢谢 一些示例代码: public boolean onCreateOptionsMenu(Menu menu) { menu.add("menuItem1"); menu.add("menuItem2");

我创建了一个选项菜单,并填充了几个菜单项。由于某些原因,添加菜单项时的顺序不符合要求

为了保证菜单项按我们希望的顺序显示,在创建之后需要执行排序步骤。但是我搜索了android开发文档,没有找到这样做的方法(或者只是我没有找到)

是否有任何解决办法来实现这一点?请告知

谢谢

一些示例代码:

public boolean onCreateOptionsMenu(Menu menu) {

    menu.add("menuItem1");

    menu.add("menuItem2");

    // after this I want to sort the items

    ArrayList<MenuItem> list = new ArrayList<MenuItem>();

    for(int i = 0; i < menu.size(); i ++) {
        list.add(menu.getItem(i));
    }

    Collections.sort(list, new SampleComparator());

    // But then I don't know how to add the sorted list of menu items back
}                
public boolean oncreateoptions菜单(菜单菜单){
菜单。添加(“菜单项1”);
菜单。添加(“菜单项2”);
//在此之后,我想对项目进行排序
ArrayList=新建ArrayList();
对于(int i=0;i
您可以使用
android:orderInCategory
属性或
菜单的
order
参数来调整菜单项的最终显示顺序。add
方法。除此之外,我认为没有办法对菜单项进行排序。此外,我想知道什么样的菜单需要这样做-最好使用不同的UI元素。

当您添加这样的内容时,您应该对项目进行排序:

     menu.add (int groupId, int itemId, int order, CharSequence title)

请参见

关于需要排序的菜单类型:我们有一个复合框架,可以将大型活动类中的内容分解为组件,对于菜单部分,每个组件将负责创建和添加菜单项。但是由于不同的组件并行地添加到菜单中,所以顺序不能保证,这就是我在这里试图解决的问题;然后,
orderInCategory
order
参数应该可以工作。。。它控制最终的显示顺序。当您的菜单由多个片段组合在一起时,它非常有用!