Изменяем детали заказа

Открыта
Изменяем детали заказа - 2

Наша цель:

Распишем подробно, что нужно сделать на каждом этапе:

  • При нажатии кнопки найти View типа CheckBox, получить его состояние, и сохранить это состояние в логическую переменную. Можно сделать запись в журнал, чтоб убедиться, что шаг 1 выполнен правильно.
  • Передать эту логическую переменную в метод createOrderSummary (создать заказ), теперь он будет принимать 2 параметра. Новым параметром будет логическая переменная под названием hasWhippedCream (со взбитыми сливками).
  • Изменить метод createOrderSummary (создать заказ), чтоб он использовал логическую переменную при выводе текста на экран.

Затем удалите логи, они нужны только для отладки.

Свои ответы и вопросы можете оставлять в комментариях.

Комментарии (19)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Jack Daniel
Уровень 28
18 ноября 2021, 12:25
+ изменение цены, если топпинг стоит что-то, например 0,5$. If (hasCream ) { price +=0.5$;} + добавить несколько чеков, если топпингов несколько, напр. сахар, корица, сироп. + вывод на экран всех выбранных гостем чеков.
Anonymous #2250292
Уровень 41
27 июля 2022, 13:26
так будет считать для одного клиента, а если их двое, то тогда сливки достанутся только одному, будет дележка 😅
🦔 Викторведу учебный тг-канал в t.me/JavangelionExpert
1 декабря 2020, 19:57
1. Создаём объект типа чекбокс и методом findViewById привязываем к чекбоксу в разметке. 2. Создаём булеву переменную и присваиваем ей состояние нашего чекбокса, обращаясь к нему и вызывая соответствующий метод:
hasWhippedCream = checkBox.isChecked();
3. В итоговом методе заказа добавляем второй параметр булевого типа и передаём туда состояние нашего чекбокса. 4. Конкатенируем переданный аргумент с остальными строками для вывода на экран. 5. Всё получится! p.s. В приложении всё сложнее и сложнее ориентироваться, зря такое месиво из методов нагородили, которое постоянно приходится дёргать и переписывать. Но раз того требует ТЗ...
Антонио Крот
Уровень 9
19 мая 2020, 19:32
чекбокс УЖЕ содержит в себе переменную, зачем делать еще одну? для получения состояния чекбокса достаточно написать
(checkBox.isChecked())
что вернет нам либо true либо false
YAO
Уровень 2
27 апреля 2020, 12:23
Памагитии!Как получить состояние чекбокса????? и сохранить это состояние в логическую переменную
22 мая 2021, 08:26
boolean hasWhippedCream = checkBox.isChecked();
Аслан Кашиев
Уровень 1
21 апреля 2020, 13:35
createOrderSummary у меня принимает 4 параметра String name, int quantity, int totalPrice, boolean hasWhippedCream
Ivan
Уровень 30
24 июля 2019, 16:42
Как вариант альтернативы можно сделать так: Написать метод public void method(Вью вью) { если булевая переменная в поле класа false, то установить её значение в true. Иначе установить в false } И всё. Теперь при формировании заказа можно чекать свою переменную и если она тру, то добавить сливок побольше, чтоб через край
Richard Winter
Уровень 12
3 апреля 2019, 08:03
в submitOrder добавить
CheckBox whippedCreamCheckBox = (CheckBox) findViewById(R.id.whipped_cream_checkbox);
boolean hasWhippedCream = whippedCreamCheckBox.isChecked();
в объявлении метода createOrderSummary добавить входное значение boolean addWhippedCream добавить addWhippedCream в нужное место в строку, которую вы формируете. в вызове метода createOrderSummary добавить аргумент hasWhippedCream
hidden #2027216
Уровень 9
18 февраля 2019, 17:51
Сделал! Вот ссылка на код: JustJava
Олег
Уровень 1
6 августа 2018, 17:28
Господа, что то я вообще поплыл с этими чекбоксами, такое впечатление, что пропустили 2, а то и 3 урока. Если начали проходить курс с нуля это почти не реально сделать...
Олег
Уровень 1
6 августа 2018, 18:10
Каким-то чудом мне удалось заставить его работать! Хоть и корявенько, но показывает то что надо. Оставлю код, может пригодиться кому-то, кто запутался так же как и я) /** Метод, который срабатывает при нажатии кнопки "Сделать заказ" */ public void submitOrder(View view) { String priceMessage = "\nTotal: "; priceMessage = createOrderSummary(quantity) + priceMessage + calculatePrice(quantity); priceMessage += "\nAdd whipped cream? " + onCheckBoxClicked(view); priceMessage += "\nThank you!"; displayMessage(priceMessage); } /** Обработчик проверки состояния чекбокса*/ public boolean onCheckBoxClicked(View view){ /** Получаем флажок*/ CheckBox checkBox = findViewById(R.id.checkboxID); /**Получаем, отмечен ли данный флажок*/ boolean isCheckBox = checkBox.isChecked(); return isCheckBox; }
AndSky
Уровень 1
9 ноября 2017, 10:59
Сначала погуглите сами, тот же stack overflow, как это реализовать, добейтесть, чтобы работало, а потом перейдите по ссылке в комментарии Павла и сравните
Post Music
Уровень 12
2 февраля 2018, 18:55
какого Павла?