Вы ищете парадигму пользовательского интерфейса, которая не является ни флажком, ни переключателем.Лучше всего использовать флажки, а затем реализовать взаимную исключительность.например,
myCheckbox1.setOnCheckChangedListener(new OnCheckChangedListener() {
@Override
public void onCheckChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
myCheckbox2.setChecked(false);
myCheckbox3.setChecked(false);
myCheckbox4.setChecked(false);
// start playback
} else {
// stop playback
}
}
);
Обратите внимание, что если вы можете перечислить все идентификаторы кнопок для каждой группы, вы можете написать общий код, например,
if (isChecked) {
int myGroup = (Integer) buttonView.getTag(); // Define the group in the view's tag
for (int id: groups.get(myGroup)) {
if (id != buttonView.getId()) ((CompoundButton) findViewById(id)).setChecked(false);
}
Другой, более сложныйОтвет будет состоять в том, чтобы создать свой собственный виджет пользовательского интерфейса и дать ему любую семантику, которую вы хотите.Это не та область, которую я мог бы описать здесь.