Обо всём по порядку

Курс "Программирование под Андроид"
5 уровень , 10 лекция
Открыта

Вы славно потрудились, когда создали свою первую переменную. Как видите, нужна всего одна строка. Если хотите увидеть значение переменной, можно вывести её в TextView на экране.

Эспериментировать Java-кодом совершенно естественно, и ничего страшного, если вдруг приложение рухнет.

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

Комментарии (17)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
апецт Уровень 44
10 июля 2023
чет увлекся на первом видео и все сразу сделал, а тут рассказывают что такое переменные))
🦔 Виктор Уровень 20 Expert
26 ноября 2020
Поздравляю всех, двигаемся дальше, всё получится! p.s. Очень толковый комментарий от AryehLaert1 на будущее: чем меньше видимость (глобальность) переменных по возможности, тем лучше. Так они не будут висеть в памяти, когда не используются.
Дмитрий Уровень 20
5 декабря 2020
На сколько я знаю, это больше применяется для того, чтобы скрыть переменную от нежелательного изменения, оставив возможность менять ее значение только нажатием кнопки например. На счет памяти спорное утверждение. Гуру пишут, что JVM выделяет память для примитивных переменных согласно их типу а не модификатору доступа.
🦔 Виктор Уровень 20 Expert
5 декабря 2020
Спасибо, хорошее замечание. На эту тему нашёл неплохую выдержку с Хабры: Локальные переменные Область видимости локальных переменных должна сводиться к минимуму. Делая это, вы улучшаете читаемость и поддерживаемость кода, а также уменьшаете вероятность ошибок. Каждая переменная должна объявляться в самом глубоком блоке, который окружает все возможные места использования переменной. Локальные переменные должны объявляться в том месте, где впервые необходимо её использовать. Почти каждая локальная переменная нуждается в инициализаторе. Если вы еще не знаете, как точно инициализировать переменную, то вам следует отложить её объявление, пока вы это не узнаете.
Name Unknown ;) Уровень 2
21 января 2021
Посмотрел на твой xml код. Я сделал так: 0) в начале сделал android:padding="8dp" 1) затем для каждого View сделал android:layout_margin="8dp" Раз просят 16dp, то я посчитал, что так со всех сторон будет гарантированы 16dp (8+8=16) Так что в итоге, я правильно поступил или такое не приветствуется в Android-разработке? (по части стилизаций и разметок)
🦔 Виктор Уровень 20 Expert
21 января 2021
Считаю, что правильно, согласно ТЗ всё сделано 👍 Я себе много вольностей позволял в дизайне учебных приложений, дальше больше ; ) А по части стиля и разметки у гугла есть много официальных гайдлайнов и документации.
maximk0 Уровень 6
2 января 2022
Вы так добро всех поддерживаете, что я под каждым постом ищу ваш комент в первую очередь, приятно читать такие комментарии :)
🦔 Виктор Уровень 20 Expert
3 января 2022
Спасибо, очень приятно видеть, что все мои труды были не напрасны : )
Vladimir Уровень 19
1 июля 2019
Привет! почему в методе displayPrice применен следующий код priceTextView.setText(NumberFormat.getCurrencyInstance().format(number)); Я не дождался урока и написал private void displayPrice(int number){ TextView priceTextView = (TextView) findViewById(R.id.price_text_view); priceTextView.setText("$" + number);
3 сентября 2020
у вас более простой вариант для понимания кста) а так тот варик, что у них, это универсальный вариант форматирования для ввода валюты
GAZ Уровень 27
10 декабря 2018
при каждом нажатии на кнопку количество чашек увеличивается на одну

    public void submitOrder(View view) {
        TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
        int numberOfCoffees = Integer.parseInt(quantityTextView.getText().toString())+1;
        display(numberOfCoffees);
        displayPrice(numberOfCoffees*5);
    }

Андрей Тарасов Уровень 1
22 ноября 2017
Вот весь код .java файла, если кто запутался. Только обращайте внимание на имя пакета.

package com.example.acerv.justjava;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

import java.text.NumberFormat;


/**
 * This app displays an order form to order coffee.
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /**
     * Тут метод внутренней работы, который производит подсчет и заставляет запустить вывод на экран. У меня показаны рубли, поэтому стоимость кофе 200р
     */
    int numberOrderCoffees = 2;

    public void submitOrder(View view) {
        display(numberOrderCoffees);
        displayPrice(numberOrderCoffees * 200);

    }
    

    /**
     * Вот тут идет связка для вывода на экран
     */
    private void display(int number) {
        TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
        quantityTextView.setText("" + number);
    }

    private void displayPrice(int number) {
        TextView priceTextView = (TextView) findViewById(R.id.price_text_view);

        priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));

    }
}
12 декабря 2017
Неправильно. Если внимательно посмотреть видео урок назад, то там видно, что переменная namberOfCoffees объявлена внутри функции submitOrder. Соответственно тут получается совсем другая зона действия и как следствие идеалогия примера.
Игорь Дегтярёв Уровень 1
9 января 2018
package com.example.android.justjava; import android.icu.text.NumberFormat; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import java.util.Locale; //import com.example.android.justjava.R; /** This app displays an order form to order coffee. */ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** This method is called when the order button is clicked. */ public void submitOrder(View view) { int numberOfCoffees = 2; display(numberOfCoffees); displayPrice(numberOfCoffees * 5); } /** This method displays the given quantity value on the screen. */ private void display(int number) { TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); quantityTextView.setText("" + number); } /** * This method displays the given price on the screen. */ private void displayPrice(int number) { TextView priceTextView = (TextView) findViewById(R.id.price_text_view); priceTextView.setText(NumberFormat.getCurrencyInstance(Locale.US).format(number)); } }
Поддубный Иван Уровень 39
19 февраля 2018
и зачем тебе эта переменная в самом методе?? Вам этой переменной нужно будет пользоваться и в методе display в следующих уроках, я уверен, ее все равно вынесут в сам класс MainActivity единственное переменные класса описывают в начале перед всеми методами

public class MainActivity extends AppCompatActivity {

    int numberOfCoffees = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    .....
2 октября 2018
тоже не понял почему переменную сделали локальной
Yura Honda-Mafia Уровень 11
18 октября 2017
Еще один урок выполнен на отлично =)