Изменение данных ListView в AlertDialog

Интерфейс, диалоги, темы, стили, меню
Ответить
Exact1990
Сообщения: 20
Зарегистрирован: 16 май 2012, 17:37

Изменение данных ListView в AlertDialog

Сообщение Exact1990 » 08 ноя 2013, 17:22

Собственно, надо, чтобы при выборе одного из пунктов AlertDialog с множественным выбором изменялись другие пункты. Например один из пунктов "Выбрать все". Соответственно, когда его нажимаешь он выделяет все, когда его отжимаешь - он убирает все (кроме одного), который стоит по умолчанию и если не выбрано ничего выбирается он.

В общем, логика изменения этих пунктов - это дело десятое. Проблема моя в том, что изменения пунктов в true работает, а в false - нет. В чем может быть причина? Кто-нибудь знает?

Код: Выделить всё

android.content.DialogInterface.OnMultiChoiceClickListener myItemsMultiClickListener = new android.content.DialogInterface.OnMultiChoiceClickListener() {
		@Override
		public void onClick(DialogInterface dialog, int which, boolean isChecked) {
			switch (which) {
			case 0:
				if (isChecked==true)
				{
					for (int i = 0; i < chkd.length; i++) {
						chkd[i] = true;
					}
				}
				else
				{
					for (int i = 0; i < chkd.length-1; i++) {
						chkd[i] = false;
					}
				}
				break;
}
		}
	};

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Изменение данных ListView в AlertDialog

Сообщение Foenix » 08 ноя 2013, 18:11

а что такое which?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Exact1990
Сообщения: 20
Зарегистрирован: 16 май 2012, 17:37

Re: Изменение данных ListView в AlertDialog

Сообщение Exact1990 » 08 ноя 2013, 18:51

Как я понял из урока на этом сайте и из доков - это идшник элемента, который выбрали.. Разве нет?

Exact1990
Сообщения: 20
Зарегистрирован: 16 май 2012, 17:37

Re: Изменение данных ListView в AlertDialog

Сообщение Exact1990 » 08 ноя 2013, 19:15

Разобрался, надо было использовать сочетание:
((AlertDialog) dialog).getListView().setItemChecked(i, true);
и
chkd = true;

Ответить