2012-02-09 3 views
4

나는 옵션 메뉴를 만들고 여러 메뉴 항목으로 채 웁니다. 메뉴 항목을 추가 할 때 어떤 이유로 메뉴 항목의 순서가 원하는대로되지 않습니다.안드로이드 애플 리케이션의 옵션 메뉴에서 메뉴 항목을 정렬하는 방법?

메뉴 항목이 원하는 순서대로 표시되도록하려면 작성 후에 정렬 단계가 필요합니다. 하지만 안드로이드 dev에 문서를 검색 하고이 일을하는 방법을 찾지 못했습니다 (또는 그냥 찾지 못했습니다).

이 문제를 해결할 수있는 해결 방법이 있습니까? 제발 조언.

감사합니다.

일부 샘플 코드 :

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 
}     

답변

7

당신은 android:orderInCategory 특성 또는 Menu.add 방법의 order 매개 변수를 사용하여 메뉴 항목의 최종 표시 순서를 조정할 수 있습니다. 그 외에는 메뉴 항목을 정렬하는 방법이 없다고 생각합니다. 또한 어떤 종류의 메뉴가 필요한지 궁금합니다. — 다른 UI 요소를 사용하는 것이 더 나을 수 있습니다.

+0

를 참조하십시오 : 우리는에 큰 활동 수업 시간에 문제를 일으킬 수있는 복합 프레임 워크를 가지고 구성 요소의 경우 메뉴 구성 요소의 경우 각 구성 요소는 메뉴 항목을 만들고 추가하는 역할을합니다. 그러나 다른 구성 요소가 메뉴에 병렬로 추가되기 때문에 순서가 보장되지 않습니다. 이것이 내가 여기서 풀려고하는 문제입니다. – Linghui

+0

나는 본다; 'orderInCategory' 또는'order' 매개 변수가 작동해야합니다 ... 최종 표시 순서를 제어합니다. –

+0

메뉴가 여러 조각으로 모여있을 때 매우 유용합니다! –

1

이 같은 추가 할 때이 항목을 정렬해야합니다

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

가 정렬을 필요로하는 메뉴의 종류를 소개 reference

관련 문제