Программирование с нуля под андроид Урок 25 Используем HashMap в Music Shop

Автор Georgiy Dronov
Программирование с нуля под андроид Урок 25 Используем HashMap в Music Shop

Давайте применим теперь наше знание о над в нашем приложение Music Shop.

Давай создадим флешмоб которой будут связаны названия товара и его цена. Давайте создадим переменную типа флешмоб и назовём её гуц Map дали методе конкрейт присвоен этой переменной гуц нет от слова товары. Новый объект типа Map и заполни эту структуру bootsnap пуд так как у нас музыкальный магазин я буду добавлять музыкальные инструменты первую добавлю гитару и цену 500 долларов за неё дали скопируй мне эту строку и вставим и здесь изменим drums барабаны цену сделаем 1500.

А здесь SkyBlock клавиши и цену поставим пусть будет 1000 и так теперь нам нужно при выборе товара приложение должно автоматически считать цену помноженные на количество и отображать — это в этом textview.

Давайте посмотрим как называется этот текст в нашем филиале Activity Main можем перейти на вкладку дизайн нажать на этот textview и мы видим здесь его название idprights textview. Давайте теперь перейдем опять Main Activity для того чтобы реализовать реакцию на выборы элемент элементов спиннере. Нам нужно имплементировать в классе inactivity Interface on item selected listener то есть наш класс будет слушать события когда пользователь будет выбирать элемент спиннере и будет реагировать на — это событие интерфейс инкрементируется таким образом пишем implements и здесь пишем он этом selected listener и как вы видите Android Studio подчеркивает нам красным цветом эту строку. Это происходит потому, что здесь класс должен быть либо абстрактным либо имплементировать методы он этом selected и он короче который реализует интерфейс. Давайте нажмем на красную лампу и нажмем на implement methods жмыхом. О'кей икак вы видите Android автоматически добавляет два метода в нашу Activity эти методы on item selected in selected методе он этом мы пишем код который должен производиться который должен выполняться когда какой-то элемент выбран. Давайте напишем здесь. Наш кот давайте для начала создадим переменную типа string называй могут name наименование товара. Далее в методе on item selected мы присвоим этой переменной a good name напишем spinner get selected item to string. То есть — это значение которое находится в спиннере в данный момент выбранное значение дальше создадим перемен переменную типа Double назовем её прайс цена и. Давайте в методе он на этом selected присвоим этой переменной цена прайс значение из нашей гуц Map по ключу Good game то есть мы будем получать связано с этим наименованием цену строка подчеркивается красным. Это происходит потому, что в наше время могут находиться элементы любого типа. А так как строго типизированный язык он требует чтобы переменной типа Double Price было присвоенное только значение Double из этого положения есть выход он называется приведение типов так как мы знаем, что в нашей Map находятся числовые значения типа Double то мы можем написать тут в скобочках дабл. И теперь мы, что мы получаем значения из нашей. Кошмар и приводим его значению к типу Double и затем присваиваем, а присваиваем к переменной типа Double далее объявляем переменную типа textview назовём прайс тексту также как и в нашей layout и связываем её с нашим Text View сойди проезд в нашей разметки и дальше устанавливаем текст в этот textview при помощи метода Set text и здесь мы указываем сначала 2 бычки потому, что нужно устанавливать строку и плюс мы хотим чтобы здесь отображалось количество quantity. Давайте напишем quantity. Дашу переменную умноженное на цену товара который выбран спиннере цена этого элемента — это прайс и теперь. Давайте попробуем запустить наше приложение давайте выберем количество 1. И теперь выберем элемент к примеру Guitar так почему-то ничего не отобразилось. Давайте посмотрим в чём дело. Ага на наш спиннер нет никакой реакции — это произошло. Потому, что при сознании спиннера нужно установить. Алису Set On item selected listener и указать здесь. Лис показать нашу Activity мы имплементировать ли в нашей an Activity этот интерфейс который позволяет этому классу Main Activity события выбора спиннеры и теперь нам нужно этот слушатель событий нашего Activity This установить к этому спиннеру, что наш класс прослушивал события этого спиннера. Давайте запустим ещё раз. Итак наше приложение было остановлено. Давайте посмотрим в чём же дело. Ага здесь написано Class Cast Exception types integer' не может быть приведена к типу Double и номер строки mainactivity 72 строке 72 наши переменной прайс которые типа Double присваивается значение извлеченное из нашей ашмор и мы пытаемся привезти — это значение к типу Double, но Android Studio пишет, что интересно. Не может быть приведён классу дабл — это произошло потому, что мы поместили значение сот до первую строку и по умолчанию она устанавливается как integers чтобы она установилась когда был нужно на в виде десятичного числа то есть с точкой. Давайте напишем все значения с 10:00 в виде десятичных чисел и теперь наши будут связаны строки значение Double. Давайте ещё раз. Запусти приложение. Давайте нажмем на кнопку + выберем 1 количество адены нажмем drops. И как вы видите замечательно. У нас вывелось цена 1.500 за барабаны. Давайте попробуем увеличить количество на 2 опять. Попробуй нажать drums. Так не выходят. Давайте нажмем Guitar и так одна гитара стоит 500 долларов 2000 доллоров — это верно и давай.

0 комментариев
0

Читайте также