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

Открыта

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

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

Комментарии (38)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
AlexTeam Lead в Google
28 января 2023, 18:50
Вроде работает как надо, чуть поправил чужой код снизу, кнопку 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, 09:59
В предыдущих видео была фраза "этот метод я объясню позднее", уже на несколько видео просмотрел дальше...позднее всё никак не наступит, объяснения нет!!! Кто-нибудь объясните досконально что здесь? Особенно ("" + number) private void display(int number) { TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); quantityTextView.setText("" + number); }
Tywin Lannister
Уровень 7
20 декабря 2023, 02:37
Насколько понимаю, в скобках это параметры для текстового типа данных, а он требует текст, если поставить просто число, то будет ошибка. Если я чего-то не правильно понимаю, исправьте
SSAXXARRстажер Android Developer в VIANTEC
16 января 2022, 09:58
Вижу, что говнокод😄 Но работает как надо! По одной прибавляет чашки и норм рассчитывает цену
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, 08:40
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, 06:59
Скиньте пример пожалуйста, как должно выглядеть в java
Дмитрий
Уровень 20
12 декабря 2020, 11:17
Может кто пояснить почему методы не статичные?
Irina Buchneva
Уровень 28
18 февраля 2021, 19:23
метод onCreate тоже не статичный. должно быть что-то создаёт объект класса MainActivity поэтому не статичные работают
🦔 Викторведу учебный тг-канал в t.me/JavangelionExpert
27 ноября 2020, 00:24
1. Создаём 2 кнопки, которые по клику вызывают методы (можно сначала в макете написать атрибут onClick с названием метода, IDE подсветит название красным и по alt + enter предложит сгенерить код для нового метода в MainActivity.java), я всем представлениям раздаю айдишники и выравниваю элементы относительно друг друга через android:layout_below. 2. Копируем код из метода подтверждения заказа в новоиспечённые методы, изменяя переменные (хотя руки чешутся сделать переменную кофе статической и в методах её напрямую инкрементить и декрементить : ). 3. Всё получится!
Name Unknown ;)
Уровень 2
21 января 2021, 15:06
Пытаюсь понять, с какого перепуга, несмотря на заданные размеры кнопки + (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"
🦔 Викторведу учебный тг-канал в t.me/JavangelionExpert
21 января 2021, 15:17
Насколько я вижу, кнопка с плюсом корректно отображается (48x48dp), а если речь про кнопку заказа, то у неё выставлен размер по контенту, т. е. она растягивается так, чтобы в ней уместилась надпись ORDER с отступами.
Name Unknown ;)
Уровень 2
21 января 2021, 15:24
К кнопке ORDER претензий нет, там как раз из-за wrap_content сама надпись отлично отценрирована внутри кнопки. А вот + внутри кнопки как-то не так отцентрирован. Я тут побольше скрин сделал, чтобы видно было, что нижняя граница кнопки ближе к нижнему краю знака +. На всякий случай приложил линейку, таки высота меньше, чем ширина (примерно на треть). Интересно, здесь видно, что линия 48 на 48, но сама кнопка других размеров (не полностью размещена внутри той 48х48 границы)
Аслан Кашиев
Уровень 1
19 апреля 2020, 13:48
вынес переменную с количеством чашек из метода, и сделал методы increment и decrement , просто увеличивая и уменьшая количество чашек, теперь можно заказать хоть 100 чашек кофе. в decrement добавил условие, при котором чашек не может быть меньше нуля.
Вадим
Уровень 34
12 марта 2020, 20:04
Расскажите, почему доллар меняется на рубль при изменении начального состояния. Это патриотизм? И как это пофиксить
hidden #2081519
Уровень 5
23 марта 2020, 07:23
Там где priceTextView.setText(NumberFormat.getCurrencyInstance().format(number)); Поменяй на priceTextView.setText(NumberFormat.getCurrencyInstance(Locale.US).format(number)); и можно просто вставить этот код без включения авто-импорта
Георгий
Уровень 16
13 августа 2019, 10:51
Все сделал уже, 2 метода, значение не уменьшается ниже 0