Страница 1 из 1
Как передать параметр в диалоговое окно?
Добавлено: 23 мар 2012, 18:43
beavis
В андройде только разбираюсь по этому может вопрос и глупый, но ответа нигде не нашел.
Суть проблемы:
есть несколько кнопок, при нажатии на любую кнопку вызывается один и тотже AlertDialog
как мне из диалога узнать по нажатию на какую кнопку он был вызван?
Re: Как передать параметр в диалоговое окно?
Добавлено: 23 мар 2012, 19:25
KamiSempai
Диалог или Активити? Если все таки диалог, какие функции он выполняет?
Если что, подобные вопросы стоит задавать в
ЭТОЙ теме.
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 09:03
beavis
именно диалог.
Пишу небольшую игрушку, в основной активности на экране несколько кнопок, при нажатии на любую из кнопок выскакивает диалог с вариантами ответа (для каждой кнопки варианты разные), в диалоге мне нужно как-то узнать какая кнопка вызвала диалог.
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 10:17
damager82
Наверно только через глобальную переменную.
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 10:21
beavis
тогда еще нужно будет какую-нибудь синхронизацию делать для мультитатча, чтобы одновременно две кнопки не нажались, или это как-то на уровне операционки разруливается?
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 11:20
andev
Две кнопки не нажмутся в любом случае - одна из них будет первой, можете проверить сами.
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 11:35
beavis
к сожаления пока неначем проверить, тренируюсь на эмуляторе... но если все так как Вы говорите то это хорошо.
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 16:46
damager82
Как раз в этот четверг будет урок с такой ситуацией, когда я в диалоге отслеживаю, какой кнопкой он был вызван. Я использую переменную.
Re: Как передать параметр в диалоговое окно?
Добавлено: 26 мар 2012, 17:11
KamiSempai
Можно сделать через 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;
}
// И так далее...
}
}
Геморроя в данном случае, конечно, по больше чем с глобальной переменной

Re: Как передать параметр в диалоговое окно?
Добавлено: 27 мар 2012, 11:33
beavis
спасибо, примерно такого и ожидал, буду пробовать