如何在Android应用程序的选项菜单中对菜单项进行排序?

时间:2012-02-09 02:19:12

标签: android menuitem android-optionsmenu

我创建了一个选项菜单并填充了几个菜单项。由于某种原因,添加菜单项时的顺序并不理想。

为了保证菜单项按我们希望的顺序显示,创建后需要一个排序步骤。但是我搜索了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
}                

2 个答案:

答案 0 :(得分:7)

您可以使用android:orderInCategory属性或order方法的Menu.add参数调整菜单项的最终显示顺序。除此之外,我不相信有一种方法可以对菜单项进行排序。另外,我想知道什么样的菜单需要这个 - 使用不同的UI元素可能会更好。

答案 1 :(得分:1)

您应该在添加时对项目进行排序:

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

请参阅reference