420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||||||
1 | ||||||
Можно ли оформить AlertDialog в виде функции?22.05.2013, 05:22. Показов 3881. Ответов 33
Метки нет (Все метки)
Помогите новичку! С Делфи перехожу на Яву
Создал класс, внутри процедуру для диалога Да-Нет. Успешно вызывается, но...
Где ошибка??? Хотелось бы использовать через res = MyAsk("Уверены?", "Да","Нет") if (res == 1) ...
0
|
22.05.2013, 05:22 | |
Ответы с готовыми решениями:
33
Вычисления суммы ряда оформить в виде функций, используемые функции и процедуры оформить в виде модуля Нахождение min оформить в виде функции, а вычисление и введение ai, bi, ci-в виде процедур Оформить отсортированный массив в виде процедуры, а сумму отрицательных чисел - в виде функции Вычислить m значений функции f(x) на отрезке [a, b]. Вычисление величины f(x) оформить в виде функции |
34 / 34 / 2
Регистрация: 22.08.2010
Сообщений: 271
|
|
22.05.2013, 10:12 | 2 |
А если static убрать?
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
22.05.2013, 11:40 | 3 |
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||||||
22.05.2013, 11:52 [ТС] | 4 | |||||
>> потому что функция возвращает результат прежде чем вы нажмете да/нет
Это я понял, но как это обойти? Как приостановить отправку RETURN до погашения формы?
Тогда не могу устанавливать значение res = 1; res = 2; Говорит "ошибка - неизвестная RES".
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
22.05.2013, 11:59 | 5 |
не нужно этого делать, просто выполняйте все необходимые действия в методах onClick.
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|||||||||||
22.05.2013, 12:34 [ТС] | 6 | ||||||||||
Пробовал поставить цикл
Раньше работал в Делфи - там все шло в один поток, графика и логика. И если я говорил показать форму, то она показывалась СРАЗУ, а не дожидалась окончания обработки. В яве все непривычно... Есть текствьюв, на который добавляю строки в процессе работы. Обработка длится секунд 30. Пока не закончится обработка, вьюв почему-то не обновляется и остается пустым.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|||||||||||
22.05.2013, 13:08 | 7 | ||||||||||
Добавлено через 4 минуты или
Добавлено через 28 секунд выносите обработку в отдельный поток.
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||||||
22.05.2013, 13:11 [ТС] | 8 | |||||
Не понял... Мне хочется результатом функции получить 1 на Да, 2 на Нет, 0 на ничего не нажато (рядом с вопросом что вызвало закрытие). Как это получить из Вашего кода? Мне не хочется плодить лишних функций -реакций на Да и Нет. Просто вызываю функцию, она останавливает ход работы кода пока не получит отклик от пользователя. Обрабатывает отклик и меняет ход работы в зависимости от ответа. Можно применить для тестов/опросников.
Например:
А можно воткнуть на выход из программы Такая функция есть в API Windows и я к ней привык.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
22.05.2013, 13:12 | 9 |
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
22.05.2013, 13:15 [ТС] | 10 |
А как? И зачем?
Например код: ... ToView("Сделали пункт 1"); ... ToView("Сделали пункт 2"); ... ToView("Сделали пункт 3"); ... но пока не закончим ВСЕ вьюв пустой. Потом сразу текста на несколько страниц.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
||||||
22.05.2013, 13:17 | 11 | |||||
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
22.05.2013, 13:18 [ТС] | 12 |
Я готов остановить работу, повесить програму пока не дождусь ответа... Ведь если я вывел вопрос, значит он мне реально важен. По крайней мере в однопоточных не графических приложениях
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
||||||
22.05.2013, 13:27 | 13 | |||||
вы можете делать вызов с отдельного потока который будете останавливать методом wait(), а после ответа запускать методом notifyAll(), но как-то это не по ООПшному Добавлено через 2 минуты для этого есть AsyncTask, или просто потоки.. советую прочитать уроки по андроиду или книгу. Добавлено через 1 минуту изначально все выполняется в UI потоке, если вам нужно что-то долго обрабатывать выносите в отдельный поток. Добавлено через 1 минуту Прочитайте книжку про ООП, сейчас вы пытаетесь все сделать в процедурном стиле.
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
22.05.2013, 13:32 [ТС] | 14 |
Тоесть при 400 вопросах я должен вместо 400 строк плодить 400 функций с 800 обработчиками..
А вот здесь по подробнее пожалуста... По делфям понимаю что близко, но java выдает на wait() ошибки: Cannot make a static reference to the non-static method wait() from the type Object Askers.java
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
22.05.2013, 13:32 | 15 |
и я бы предпочел форму с радиобатонами вместо десятка диалогов...
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
22.05.2013, 13:44 [ТС] | 16 |
Вообще-то я думал что у меня одна процедура "провести тест" или "выходим из программы". Вызывается на нажатие кнопки и длится до обработки всех ответов пользователей. "вы уверены что выходим?" "Документ не сохранен, сохранить?". Вроде делфи был тоже ООП, но в яве все так запутанно... Классы, методы, обрабочики. Все в одном потоке. Хочешь что-бы не подвисал главный поток в процессе обработки - создавал другие потоки, но если это не критично, пусть повисит пока думает. В яве же куча не нужных обработчиков создающие кучу параллельных подпотоков и вызываемых почти независимо от остальной программы... Добавлено через 3 минуты Иногда следующий вопрос зависит от предыдущего: Вы мужчина? Паять умеете? / Какой у вас размер лифчика?
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
||||||||||||||||
22.05.2013, 14:16 | 17 | |||||||||||||||
нет, 400 диалогов это в любом случае плохо, как я уже написал, лучше формы с радиобатонами.
с диалогами в ООПшном стиле может выглядеть примерно так:
нет проблем, можно динамически добавлять такие вопросы, или отделить в первую форму вопросы от которых зависят другие вопросы. Добавлено через 4 минуты а где это вы пытаетесь вызвать? Добавлено через 56 секунд нельзя в статик методах вызывать не статические методы этого же класса. Добавлено через 7 минут ну примерно так
Добавлено через 2 минуты ну чтобы перестроить свое мышление с процедур на объекты одной главы недостаточно. Добавлено через 9 минут все же советую отказаться от вывода сотен диалогов и продумать нормальную форму для заполнения... Добавлено через 36 секунд дурной тон такое диалогами делать.
0
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
22.05.2013, 16:54 [ТС] | 18 |
вызывается как Askers.AskInfo(this, "ура", 1) ; И в теории поменяв/доработав процедуру смогу сменить его стиль хоть на свой дизайн (цвета, прозрачность, рамка). Программу же перебирать не прийдется... Посоветуйте все-же какие Главы Явы помогут мне понять принцип построение андроид-ява-обработчиков.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
22.05.2013, 17:42 | 19 |
вот от этого нужно отказаться, выполнение кода не должно ждать ответа пользователя, все реализуется калбеками/ивентами.
1
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
22.05.2013, 18:24 [ТС] | 20 |
Тяжелая "ломка" логики. Если честно, не вижу преимущества такого подхода. Мелкие модификации превращаются в полное переписывание логики. Например была длинная процедура синхронизации гаджета с сервером (реальная ситуация). В середине обработки решил спросить пользователя, хочет ли он (например) после получения данных отправить свои. И... вынужден "нарезать" процедуру Sinhro на 3 - до вопроса(с обрезанием всего что было раньше), ДА и НЕТ вместо IF ELSE. А если захочется вставить еще несколько вопросов, то вместо "ветвей IF" получаю 5-8 разных "вложеных калбеков". А синхронизацию некоторых явно прийдется вести через "потоки" и "мютексы". Круто для многоядерных андроидов, но абсолютно бесполезно для "офисных" приложений.
Слышал что ява намного гибче Делфи. Подделать ява-вские калбеки/инвайты в делфи легко. А можно ли подделать однопоточную Делфи в Ява?
0
|
22.05.2013, 18:24 | |
22.05.2013, 18:24 | |
Помогаю со студенческими работами здесь
20
Оформить вычисления значения интегральной функции в виде процедуры-функции Оформить в виде функции Оформить в виде функции Оформить в виде функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |