Comment créer un sous-menu avec des boutons radio dans Android?

J'ai un problème dans un cas simple (au moins, ça l'ressemble). J'ai besoin de créer un sous-menu pour un menu contextuel de manière dynamique et de fournir à chaque élément une radio. J'ai fait beaucoup d'essais. Lorsque j'appelle menu.setGroupCheckable(0, true, true) , où 0 est par défaut le menu lui-même, il affiche les boutons radio à droite sur chaque élément de menu comme prévu, mais j'ai besoin de ce 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 les boîtes radio, ni les cases à cocher dans le sous-menu. Ensuite, j'ai écrit le code suivant:

  • Exécutez l'application en mode Paysage uniquement?
  • OnActivityResult ne lance pas le Fragment
  • Espresso: comment faire défiler vers le bas de ScrollView
  • Comment faire pour obtenir mon périphérique Android Internal Download Folder path
  • Obtenir uniquement l'adresse électronique de la liste de contacts Android
  • Effet AlarmManager sur batterie pour une application Réveil
  •  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 fait que le sous-menu dispose d'une case à cocher dans chaque élément, et les cases à cocher fonctionnent exclusivement, mais je veux des boîtes radio, car elles sont plus intuitives pour une sélection exclusive.

    Alors, comment cela peut-il être accompli?

  • Comment changer une distance de 1 mètre à pixel?
  • Le meilleur pour utiliser Android Studio ou Intellij Idea wth plugins?
  • Deux questions sur le modèle de flux de maître / détail
  • Java.lang.NoClassDefFoundError sur les anciennes versions SDK d'Android
  • Android Studio signé APK Not Installing
  • Comment créer un thread Looper, puis envoyer un message immédiatement?
  • 2 Solutions collect form web for “Comment créer un sous-menu avec des boutons radio dans Android?”

    Réglez le paramètre checkableBehavior dans xml à simple. Voici un code:

     <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> 

    J'ai découvert que les groupes de menus et les sous-menus sont traités séparément, c'est-à-dire un groupe formé dans un sous-menu, devraient être adressés via le sous-menu, et non via le menu de niveau supérieur. Donc, la solution est d'appeler:

     sub.setGroupCheckable(1, true, true); 

    Ce code fonctionne comme prévu, c'est-à-dire les éléments dans le sous-menu montrent les boutons radio au lieu des cases à cocher.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.