単純なケースで問題があります(少なくとも、そう見えます)。コンテキスト メニューのサブメニューを動的に作成し、各項目にラジオ ボックスを提供する必要があります。いろいろ試行錯誤しました。を呼び出すとmenu.setGroupCheckable(0, true, true)
、デフォルトでは 0 がメニュー自体であり、期待どおりにすべてのメニュー項目の右側にラジオ ボタンが表示されますが、サブメニューにはこれが必要です。だから私は次のコードを持っています:
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);
これにより、サブメニューのすべての項目にチェックボックスがあり、チェックボックスは排他的に機能しますが、排他的な選択に対してより直感的に見えるため、ラジオボックスが必要です。
では、どうすればこれを達成できるでしょうか。