2012-05-26 4 views
13

간단한 케이스에 문제가 있습니다 (적어도 그렇게 보입니다). 컨텍스트 메뉴에 대한 하위 메뉴를 동적으로 만들고 각 항목에 라디오 상자를 제공해야합니다. 나는 많은 시련을 겪었다. menu.setGroupCheckable(0, true, true)으로 전화 할 때, 0은 기본적으로 메뉴 자체이며, 예상대로 모든 메뉴 항목의 오른쪽에 라디오 버튼을 표시하지만 하위 메뉴에는이 버튼이 필요합니다. 하위 메뉴에서 내가 어느 radioboxes이 표시되지 않는이 경우Android에서 라디오 버튼을 사용하여 하위 메뉴를 만드는 방법은 무엇입니까?

SubMenu sub = menu.addSubMenu(R.string.name); 
int count = 1000; 
for(String e : someList) 
{ 
    MenuItem item = sub.add(1, count, count, e); 
    count++; 
} 
menu.setGroupCheckable(1, true, true); 

,도 체크 박스 : 그래서 나는 다음과 같은 코드가 있습니다. 그런 다음 코드 작성 :이 모든 항목의 체크 박스를 가지고 하위 메뉴를 만드는

SubMenu sub = menu.addSubMenu(R.string.name); 
int count = 1000; 
for(String e : someList) 
{ 
    MenuItem item = sub.add(1, count, count, e); 
    item.setCheckable(true); 
    count++; 
} 
menu.setGroupCheckable(1, true, true); 

을하고 체크 박스 독점적으로 작동하지만 독점 선택을 위해 더 직관적으로 보이기 때문에 내가 radioboxes을 원한다.

그럼 어떻게 수행 할 수 있습니까?

+0

곰 염두에 컨텍스트 메뉴가 작업 표시 줄에 상황에 맞는 동작 모드에 찬성, 사라져있다. – CommonsWare

+2

작업 표시 줄에서 ActionProvider와 함께 사용되는 하위 메뉴에는 여전히 적용됩니다. – aap

답변

10

하위 메뉴에서 형성된 그룹 인 메뉴와 하위 메뉴 그룹이 최상위 메뉴가 아닌 하위 메뉴를 통해 처리되어야한다는 것을 알게되었습니다. 그래서 솔루션을 호출하는 것입니다 :

sub.setGroupCheckable(1, true, true); 

이 코드는 예상대로 그 대신 체크 박스의 하위 메뉴 쇼 라디오 버튼 항목입니다 작동합니다.

14

xml의 checkableBehavior를 single로 설정하십시오. 는 여기에 몇 가지 코드 :

<menu> 
     <group android:id="@+id/group" 
      android:checkableBehavior="single"> 
      <item android:id="@+id/menu_sort_by_name" 
        android:title="@string/action_sort_by_name"/> 
      <item android:id="@+id/menu_sort_by_last_edit" 
        android:title="@string/action_sort_by_last_edit"/> 
     </group> 
</menu> 
+1

또한 하위 항목에 확인 가능한 속성 집합이 없는지 확인하십시오. – Clyde

관련 문제