Проблема в том, что я могу заставить их отображаться отключенными, но они по-прежнему работают нормально.
Как вы можете видеть на скриншоте, второй вариант выделен серым цветом. Он по-прежнему реагирует на события касания.

Код: Выделить всё
public class SettingDialog {
public SettingDialog(@NonNull Context context) {
show();
}
private void show() {
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context)
.setTitle("Test Dialog")
.setNegativeButton("Cancel", null)
.setPositiveButton("Save", null)
.setMultiChoiceItems(displayNames, checkedItems, (dialog, which, isChecked) -> {
//
});
AlertDialog dialog = builder.create();
dialog.show();
// For disabling certain options from the dialog
ListView listView = dialog.getListView();
listView.post(() -> {
for (int i = 0; i < allItems.length; i++) {
View view = listView.getChildAt(i);
String item = allItems[i];
if (view != null && view instanceof CheckedTextView) {
boolean isEnabled = // false if disabled.
if (!isEnabled) {
view.setEnabled(false);
}
}
}
});
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... lertdialog
Мобильная версия