Comment créer un sous-menu avec des boutons radio dans Android?
J'ai un problème dans un cas simple (au moins, il ressemble). J'ai besoin de créer un sous-menu pour un menu de contexte dynamique et d'offrir à chaque élément avec un radiobox. J'ai fait beaucoup d'essais. Quand je l'appelle menu.setGroupCheckable(0, true, true)
, où 0 est, par défaut, le menu lui-même, il affiche des boutons radio à droite sur chaque élément de menu comme prévu, mais j'en ai besoin pour sous-menu. J'ai donc le code suivant:
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);
Dans ce cas, je ne vois ni radioboxes, ni des cases à cocher dans le sous-menu. Ensuite, j'ai écrit le code suivant:
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);
Cela rend le sous-menu d'avoir une case à cocher dans chaque élément, et les cases de travail exclusivement, mais je veux radioboxes, parce qu'ils regardent de manière plus intuitive pour la sélection exclusive.
Alors, comment cela peut-il être réalisé?
- Gardez à l'esprit que les menus contextuels sont en train de disparaître, à la faveur du contexte de modes d'action sur la barre d'action.
- S'applique toujours dans le sous-menu qui va avec une ActionProvider dans la barre d'action.
Vous devez vous connecter pour publier un commentaire.
Définir la checkableBehavior en xml simple.
Voici un code:
J'ai trouvé que les groupes de menus et sous-menus sont traitées séparément, qui est un groupe formé dans un sous-menu, doivent être adressées via le sous-menu, et non pas via le menu de niveau supérieur. Donc la solution est d'appeler:
Ce code fonctionne comme prévu, c'est-éléments dans le sous-menu afficher les radiobuttons au lieu de cases à cocher.