Подключаем две кнопки

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

Подсказка: чтоб создать методы increment (увеличить) и decrement (уменьшить) в MainActivity, скопируйте метод submitOrder (отправить заказ) и измените его имя. Затем перепишите код внутри метода, так, чтоб он выполнял поставленные задачи.

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

Комментарии (38)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Alex Уровень 45
28 января 2023
Вроде работает как надо, чуть поправил чужой код снизу, кнопку ORDER оставил с пустым функционалом на будущее

public class MainActivity extends AppCompatActivity {
    private int count = 0;

    @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) {

    }

    /**
     * This method is an increment.
     */
    public void increment(View view) {
        display(++count);
        displayPrice(count*5);
    }

    /**
     * This method is a decrement.
     */
    public void decrement(View view) {
        if (count>0){
            display(--count);
            displayPrice(count*5);
        }
    }

    /**
     * This method displays the given quantity value on the screen.
     */
    private void display(int number) {
        TextView quantityTextView = (TextView) findViewById(R.id.quantity);
        quantityTextView.setText("" + number);
    }

    /**
     * This method displays the given price on the screen.
     */
    private void displayPrice(int number) {
        TextView priceTextView = (TextView) findViewById(R.id.price);
        priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));
    }
}
Костец Уровень 21
26 марта 2022
В предыдущих видео была фраза "этот метод я объясню позднее", уже на несколько видео просмотрел дальше...позднее всё никак не наступит, объяснения нет!!! Кто-нибудь объясните досконально что здесь? Особенно ("" + number) private void display(int number) { TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); quantityTextView.setText("" + number); }
Tywin Lannister Уровень 7
20 декабря 2023
Насколько понимаю, в скобках это параметры для текстового типа данных, а он требует текст, если поставить просто число, то будет ошибка. Если я чего-то не правильно понимаю, исправьте
SSAXXARR Уровень 33
16 января 2022
Вижу, что говнокод😄 Но работает как надо! По одной прибавляет чашки и норм рассчитывает цену

public class MainActivity extends AppCompatActivity {
    TextView quantityTextView;
    int mCount;
    private int mNumberOfCoffees = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        display(mNumberOfCoffees);
        displayPrice(mNumberOfCoffees * 5);
    }
    public void submitOrder(View view) {
        display(mNumberOfCoffees);
        displayPrice(mNumberOfCoffees * 5);
    }

    /**
     * This method displays the given quantity value on the screen.
     */
    private void display(int number) {
        quantityTextView = findViewById(R.id.countTV);
        quantityTextView.setText("" + number);
    }
    /**
     * This method displays the given price on the screen.
     */
    private void displayPrice(int number) {
        TextView priceTextView = (TextView) findViewById(R.id.priceTV);
        priceTextView.setText(NumberFormat.getCurrencyInstance(Locale.US).format(number));
    }

    public void decrement(View view) {
        if(mNumberOfCoffees > 0){
            mNumberOfCoffees = mNumberOfCoffees - 1;
            quantityTextView = findViewById(R.id.countTV);
            quantityTextView.setText("" + mNumberOfCoffees);
        }
    }

    public void increment(View view) {
        mNumberOfCoffees = mNumberOfCoffees + 1;
        quantityTextView = findViewById(R.id.countTV);
        quantityTextView.setText("" + mNumberOfCoffees);
    }
}
Argentum Daemonium Уровень 19
24 марта 2021



public class MainActivity extends AppCompatActivity {

    private int count = 0;

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

    public void submitOrder(View view) {
        displayPrice(count * 5);

    }

    public void countPlus(View view) {
        count++;
        display(count);
    }

    public void countMinus(View view) {

        if(count>1) count--;
        display(count);
    }

    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));
    }
}
Lisander Smith Уровень 2
10 января 2021
Скиньте пример пожалуйста, как должно выглядеть в java
Дмитрий Уровень 20
12 декабря 2020
Может кто пояснить почему методы не статичные?
Irina Buchneva Уровень 28
18 февраля 2021
метод onCreate тоже не статичный. должно быть что-то создаёт объект класса MainActivity поэтому не статичные работают
🦔 Виктор Уровень 20 Expert
27 ноября 2020
1. Создаём 2 кнопки, которые по клику вызывают методы (можно сначала в макете написать атрибут onClick с названием метода, IDE подсветит название красным и по alt + enter предложит сгенерить код для нового метода в MainActivity.java), я всем представлениям раздаю айдишники и выравниваю элементы относительно друг друга через android:layout_below. 2. Копируем код из метода подтверждения заказа в новоиспечённые методы, изменяя переменные (хотя руки чешутся сделать переменную кофе статической и в методах её напрямую инкрементить и декрементить : ). 3. Всё получится!
Name Unknown ;) Уровень 2
21 января 2021
Пытаюсь понять, с какого перепуга, несмотря на заданные размеры кнопки + (48dp и 48dp) всё равно высота получается меньше, чем должна быть?

<LinearLayout
   .....
    android:padding="8dp"
    android:orientation="vertical"
    ...>

    <TextView
        android:text="QUANTITY"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:layout_margin="8dp"
        />

    <Button
        ....
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_margin="8dp"
        android:onClick="submitOrder"
        android:text="@string/plus"
        android:textColor="@color/black"
        android:textSize="25sp"
        app:backgroundTint="#AFACAC" />

    <TextView
        ....
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="0"
        android:textColor="@color/black"
        android:textSize="25sp" />

    <TextView
        .....
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:layout_margin="8dp"
        />

    <TextView
        ....
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:textSize="25sp"
        android:layout_margin="8dp"
        />

    <Button
        android:text="ORDER"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:onClick="submitOrder"
        android:textColor="@color/black"
        android:textSize="25sp"
 
🦔 Виктор Уровень 20 Expert
21 января 2021
Насколько я вижу, кнопка с плюсом корректно отображается (48x48dp), а если речь про кнопку заказа, то у неё выставлен размер по контенту, т. е. она растягивается так, чтобы в ней уместилась надпись ORDER с отступами.
Name Unknown ;) Уровень 2
21 января 2021
К кнопке ORDER претензий нет, там как раз из-за wrap_content сама надпись отлично отценрирована внутри кнопки. А вот + внутри кнопки как-то не так отцентрирован. Я тут побольше скрин сделал, чтобы видно было, что нижняя граница кнопки ближе к нижнему краю знака +. На всякий случай приложил линейку, таки высота меньше, чем ширина (примерно на треть). Интересно, здесь видно, что линия 48 на 48, но сама кнопка других размеров (не полностью размещена внутри той 48х48 границы)
Аслан Кашиев Уровень 22
19 апреля 2020
вынес переменную с количеством чашек из метода, и сделал методы increment и decrement , просто увеличивая и уменьшая количество чашек, теперь можно заказать хоть 100 чашек кофе. в decrement добавил условие, при котором чашек не может быть меньше нуля.
Вадим Уровень 34
12 марта 2020
Расскажите, почему доллар меняется на рубль при изменении начального состояния. Это патриотизм? И как это пофиксить
hidden #2081519 Уровень 5
23 марта 2020
Там где priceTextView.setText(NumberFormat.getCurrencyInstance().format(number)); Поменяй на priceTextView.setText(NumberFormat.getCurrencyInstance(Locale.US).format(number)); и можно просто вставить этот код без включения авто-импорта
Георгий Уровень 16
13 августа 2019
Все сделал уже, 2 метода, значение не уменьшается ниже 0