首页 > 解决方案 > 在android中使用递减和递增按钮编辑文本的最小值和最大值

问题描述

你好,我有一个线性布局,它是父布局,它在编辑文本之前持有一个编辑文本和一个递减按钮,在编辑文本之后持有一个递增按钮。这个想法是,当单击递减按钮时,编辑文本中的数值减一,当单击递增按钮时,编辑文本中的数值加一。我想要的是设置编辑文本的最大数量和最小数量,这样当达到最大值时,它会显示一个 toast,表明已达到最大数量,当也达到最小值时,会显示一个 toast,显示最小数量。

这是我的 XML 布局,其中包含按钮和编辑文本


          <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:gravity="center_vertical"
                    android:orientation="horizontal"
                    android:padding="2dp">

                    <com.google.android.material.button.MaterialButton
                        android:id="@+id/btn_decrement"
                        style="@style/Widget.App.Button.OutlinedButton.IconOnly"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:theme="@style/ButtonsTheme"
                        app:icon="@drawable/ic_remove_icon" />

                    <EditText
                        android:id="@+id/item_quantity_edit_text"
                        android:layout_width="80dp"
                        android:layout_height="30dp"
                        android:layout_gravity="end"
                        android:background="@drawable/edit_text_background"
                        android:gravity="center"
                        android:inputType="number"
                        android:text="1" />

                    <com.google.android.material.button.MaterialButton
                        android:id="@+id/btn_increment"
                        style="@style/Widget.App.Button.OutlinedButton.IconOnly"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:theme="@style/ButtonsTheme"
                        app:icon="@drawable/ic_add_icon" />

                </LinearLayout>

设置按钮的点击监听器

        btnDecrement.setOnClickListener(this);
        btnIncrement.setOnClickListener(this);

单击按钮时切换大小写


            case R.id.btn_decrement:
                decreaseQuantity();
                break;
            case R.id.btn_increment:
                increaseQuantity();
                break;

增加和减少编辑文本中值的方法


 public void increaseQuantity() {
        display(Integer.parseInt(etQuantity.getText().toString()) + 1);
    }

    public void decreaseQuantity() {
        display(Integer.parseInt(etQuantity.getText().toString()) - 1);
    }

    private void display(int number) {
        etQuantity.setText(String.valueOf(number));
    }

etQuantity 是编辑文本

标签: androidandroid-studioandroid-edittextandroid-button

解决方案


只需在增量和减量函数中添加以下代码。

public void increaseQuantity() {
         If(etQuantity.getText().toString() == MAXVAL) 
             // Add code for displaying toast
        else
        display(Integer.parseInt(etQuantity.getText().toString()) + 1);
    }
public void decreaseQuantity() {
         If(etQuantity.getText().toString() == MINVAL) 
             // Add code for displaying toast
        else
        display(Integer.parseInt(etQuantity.getText().toString()) + 1);


推荐阅读