Return to Video

05-39 Fix the Order Button - Solution

  • 0:00 - 0:03
    Существует несколько правильных
    решений.
  • 0:03 - 0:06
    Решение зависит от того, что наиболее
    важно для вас для выявления разницы
  • 0:06 - 0:09
    между некорректной и корректной работой
    приложения.
  • 0:09 - 0:13
    Обратите внимание вот на что.
  • 0:13 - 0:16
    При некорректной работе приложения,
    когда вы нажимаете кнопку «Заказ»,
  • 0:16 - 0:17
    количество меняется на то же самое
    значение каждый раз,
  • 0:17 - 0:20
    и оно не должно меняться.
  • 0:20 - 0:22
    Кроме того, значение цены
    было корректным
  • 0:22 - 0:25
    для этого значения количества,
    но по факту цена должна соответствовать
  • 0:25 - 0:28
    последнему выбранному значению
    количества.
  • 0:28 - 0:32
    Это связано с тем фактом, что количество
    не должно меняться.
  • 0:32 - 0:34
    Чтобы понять, почему так происходит,
    давайте посмотрим существующий код.
  • 0:35 - 0:39
    В файле activity_main layout,
    кнопка «Заказа» объявлена здесь.
  • 0:39 - 0:41
    Когда она нажимается,
  • 0:41 - 0:43
    в MainActivity вызывается метод
    submitOrder.
  • 0:43 - 0:48
    В файле MainActivity.java
    метод submitOrder расположен здесь.
  • 0:48 - 0:51
    Это старый код, которым мы пользовались
    давным-давно и ещё не поменяли.
  • 0:51 - 0:55
    Мы создаём целочисленную переменную
    quantity и инициализируем её значением 5.
  • 0:55 - 0:56
    Отображаем это на экране.
  • 0:56 - 1:01
    Также выводим на экран цену,
    как число чашек кофе по 5 долларов.
  • 1:01 - 1:04
    Этот код уже не имеет смысла,
    потому что мы сейчас пытаемся
  • 1:04 - 1:07
    оформить заказ и обновить количество.
  • 1:07 - 1:09
    Ещё одна загвоздка в том,
    что мы создаём переменную quantity,
  • 1:09 - 1:12
    уже имея глобальную переменную quantity,
    предназначенную для отслеживания
  • 1:12 - 1:14
    количества чашек кофе.
  • 1:14 - 1:18
    В MainActivity у нас уже есть глобальная
    переменная quantity,
  • 1:18 - 1:23
    поэтому любой метод внутри класса
    может ссылаться на эту переменную.
  • 1:23 - 1:27
    Однако, в методе submitOrder мы создаём
    новую локальную переменную quantity.
  • 1:27 - 1:30
    Теоретически локальная переменная может
    иметь то же имя,
  • 1:30 - 1:32
    что и глобальная.
  • 1:32 - 1:35
    Это просто означает, что в контексте
    этого метода,
  • 1:35 - 1:36
    после объявления этой переменной,
    всякий раз, когда вы ссылаетесь
  • 1:36 - 1:39
    на переменную quantity,
  • 1:39 - 1:42
    ссылка будет на локальную переменную
    quantity со значением 5,
  • 1:42 - 1:44
    а не на глобальную со значением 2.
  • 1:44 - 1:46
    Итак, display(quantity)
  • 1:46 - 1:52
    и displayPrice(quantity *5) оба
    ссылаются на это значение переменной.
  • 1:52 - 1:54
    Это область видимости этой
    локальной переменной.
  • 1:54 - 1:55
    За пределами этой области,
  • 1:55 - 1:59
    всякий раз, когда вы ссылаетесь
  • 1:59 - 2:00
  • 2:00 - 2:03
  • 2:03 - 2:07
  • 2:07 - 2:10
  • 2:10 - 2:15
  • 2:15 - 2:18
  • 2:18 - 2:22
  • 2:22 - 2:25
  • 2:25 - 2:29
  • 2:29 - 2:31
  • 2:31 - 2:34
  • 2:34 - 2:38
  • 2:38 - 2:42
  • 2:42 - 2:44
  • 2:44 - 2:48
  • 2:48 - 2:51
  • 2:51 - 2:54
  • 2:54 - 2:58
  • 2:58 - 3:00
  • 3:00 - 3:04
  • 3:05 - 3:07
  • 3:08 - 3:10
  • 3:10 - 3:14
  • 3:14 - 3:15
  • 3:15 - 3:18
  • 3:18 - 3:19
  • 3:19 - 3:23
  • 3:23 - 3:24
  • 3:24 - 3:26
  • 3:26 - 3:29
  • 3:29 - 3:32
  • 3:32 - 3:36
  • 3:36 - 3:37
Title:
05-39 Fix the Order Button - Solution
Description:

05-39 Как зафиксировать кнопку «Заказ» -- Решение

more » « less
Video Language:
English
Team:
Udacity
Project:
UD837 - Android for Beginners
Duration:
03:39

Russian subtitles

Revisions Compare revisions