Итак, у меня есть этот код для отображения MultiChoiceItem
, однако эти пункты также включают опции «Всегда» и «Никогда».Если один из них выбран, все остальные флажки должны быть отключены (или включены, если опция снова не отмечена).
Проблема в том, как я могу получить доступ к флажкам?Насколько я понимаю, у них тоже нет идентификатора, поэтому я не могу получить к ним доступ с помощью findViewById()
(или они?)
Код, который я использую для всплывающего окна, приведен ниже,хотя вам, вероятно, это не нужно.
И просто для наглядности я добавил также скриншот.Таким образом, в случае нажатия «Всегда», метод должен выделять все остальные элементы серым цветом, но оставлять состояние проверки.
Спасибо!
private void createPopup(boolean[] selected) {
final CharSequence[] items = getResources().getStringArray(R.array.cb_Entries);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.l_active));
builder.setMultiChoiceItems(items, selected, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
stateSelectedItems[which] = isChecked;
}
});
builder.setPositiveButton(getString(R.string.b_okay), dialogListener);
builder.setNegativeButton(getString(R.string.b_cancel), dialogListener);
AlertDialog alert = builder.create();
alert.show();
}
/ edit: Итак, благодаря littleFluffyKitty, я могу выделить серые флажки, но они по-прежнему доступны для щелчка (и меняют свои значения!), даже когда используется setClickable(false)
.
Это код, который яиспользование:
popUpDialog.getListView().getChildAt(i).setEnabled(enable);