Как передать параметр в диалоговое окно?

Интерфейс, диалоги, темы, стили, меню
Ответить
beavis
Сообщения: 5
Зарегистрирован: 23 мар 2012, 18:40

Как передать параметр в диалоговое окно?

Сообщение beavis » 23 мар 2012, 18:43

В андройде только разбираюсь по этому может вопрос и глупый, но ответа нигде не нашел.
Суть проблемы:
есть несколько кнопок, при нажатии на любую кнопку вызывается один и тотже AlertDialog
как мне из диалога узнать по нажатию на какую кнопку он был вызван?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Как передать параметр в диалоговое окно?

Сообщение KamiSempai » 23 мар 2012, 19:25

Диалог или Активити? Если все таки диалог, какие функции он выполняет?

Если что, подобные вопросы стоит задавать в ЭТОЙ теме.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

beavis
Сообщения: 5
Зарегистрирован: 23 мар 2012, 18:40

Re: Как передать параметр в диалоговое окно?

Сообщение beavis » 26 мар 2012, 09:03

именно диалог.
Пишу небольшую игрушку, в основной активности на экране несколько кнопок, при нажатии на любую из кнопок выскакивает диалог с вариантами ответа (для каждой кнопки варианты разные), в диалоге мне нужно как-то узнать какая кнопка вызвала диалог.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Как передать параметр в диалоговое окно?

Сообщение damager82 » 26 мар 2012, 10:17

Наверно только через глобальную переменную.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

beavis
Сообщения: 5
Зарегистрирован: 23 мар 2012, 18:40

Re: Как передать параметр в диалоговое окно?

Сообщение beavis » 26 мар 2012, 10:21

тогда еще нужно будет какую-нибудь синхронизацию делать для мультитатча, чтобы одновременно две кнопки не нажались, или это как-то на уровне операционки разруливается?

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Как передать параметр в диалоговое окно?

Сообщение andev » 26 мар 2012, 11:20

Две кнопки не нажмутся в любом случае - одна из них будет первой, можете проверить сами.

beavis
Сообщения: 5
Зарегистрирован: 23 мар 2012, 18:40

Re: Как передать параметр в диалоговое окно?

Сообщение beavis » 26 мар 2012, 11:35

к сожаления пока неначем проверить, тренируюсь на эмуляторе... но если все так как Вы говорите то это хорошо.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Как передать параметр в диалоговое окно?

Сообщение damager82 » 26 мар 2012, 16:46

Как раз в этот четверг будет урок с такой ситуацией, когда я в диалоге отслеживаю, какой кнопкой он был вызван. Я использую переменную.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Как передать параметр в диалоговое окно?

Сообщение KamiSempai » 26 мар 2012, 17:11

Можно сделать через Bundle. Технология примерно следующая:
При нажатии кнопки

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

Bundle args = new Bundle();
args.putLong("ButtonID", BUTTON1);
showDialog(ALERT_DIALOG, args);
onPrepareDialog должен выглядеть следующим образом

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

protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
        super.onPrepareDialog(id, dialog);
        switch(args.getLong("ButtonID")) {
		case BUTTON1:{
			// Настраиваем диалог под кнопку 1
			break;
		}
		case BUTTON2:{
			// Настраиваем диалог под кнопку 2
			break;
		}
		// И так далее...
	}
}
Геморроя в данном случае, конечно, по больше чем с глобальной переменной :)
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

beavis
Сообщения: 5
Зарегистрирован: 23 мар 2012, 18:40

Re: Как передать параметр в диалоговое окно?

Сообщение beavis » 27 мар 2012, 11:33

спасибо, примерно такого и ожидал, буду пробовать

Ответить