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

Курс "Программирование под Андроид"
9 уровень , 2 лекция
Открыта
Изменяем детали заказа - 2

Наша цель:

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

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

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

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

Комментарии (19)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Jack Daniel Уровень 28
18 ноября 2021
+ изменение цены, если топпинг стоит что-то, например 0,5$. If (hasCream ) { price +=0.5$;} + добавить несколько чеков, если топпингов несколько, напр. сахар, корица, сироп. + вывод на экран всех выбранных гостем чеков.
Anonymous #2250292 Уровень 41
27 июля 2022
так будет считать для одного клиента, а если их двое, то тогда сливки достанутся только одному, будет дележка 😅
🦔 Виктор Уровень 20 Expert
1 декабря 2020
1. Создаём объект типа чекбокс и методом findViewById привязываем к чекбоксу в разметке. 2. Создаём булеву переменную и присваиваем ей состояние нашего чекбокса, обращаясь к нему и вызывая соответствующий метод:

hasWhippedCream = checkBox.isChecked();
3. В итоговом методе заказа добавляем второй параметр булевого типа и передаём туда состояние нашего чекбокса. 4. Конкатенируем переданный аргумент с остальными строками для вывода на экран. 5. Всё получится! p.s. В приложении всё сложнее и сложнее ориентироваться, зря такое месиво из методов нагородили, которое постоянно приходится дёргать и переписывать. Но раз того требует ТЗ...
Антонио Крот Уровень 9
19 мая 2020
чекбокс УЖЕ содержит в себе переменную, зачем делать еще одну? для получения состояния чекбокса достаточно написать

(checkBox.isChecked())
что вернет нам либо true либо false
YAO Уровень 2
27 апреля 2020
Памагитии!Как получить состояние чекбокса????? и сохранить это состояние в логическую переменную
22 мая 2021
boolean hasWhippedCream = checkBox.isChecked();
Аслан Кашиев Уровень 22
21 апреля 2020
createOrderSummary у меня принимает 4 параметра String name, int quantity, int totalPrice, boolean hasWhippedCream
Ivan Уровень 30
24 июля 2019
Как вариант альтернативы можно сделать так: Написать метод public void method(Вью вью) { если булевая переменная в поле класа false, то установить её значение в true. Иначе установить в false } И всё. Теперь при формировании заказа можно чекать свою переменную и если она тру, то добавить сливок побольше, чтоб через край
Richard Winter Уровень 12
3 апреля 2019
в 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
Сделал! Вот ссылка на код: JustJava
Олег Уровень 1
6 августа 2018
Господа, что то я вообще поплыл с этими чекбоксами, такое впечатление, что пропустили 2, а то и 3 урока. Если начали проходить курс с нуля это почти не реально сделать...
Олег Уровень 1
6 августа 2018
Каким-то чудом мне удалось заставить его работать! Хоть и корявенько, но показывает то что надо. Оставлю код, может пригодиться кому-то, кто запутался так же как и я) /** Метод, который срабатывает при нажатии кнопки "Сделать заказ" */ 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
Сначала погуглите сами, тот же stack overflow, как это реализовать, добейтесть, чтобы работало, а потом перейдите по ссылке в комментарии Павла и сравните
Post Music Уровень 12
2 февраля 2018
какого Павла?