android 中带有递减和递增按钮的编辑文本的最小值和最大值
Minimum and Maximum for edit text with decrementing and incrementing buttons in android
你好我有一个线性布局,它是父布局,它在编辑文本之前有一个编辑文本和一个递减按钮,在编辑文本之后有一个递增按钮。这个想法是,当单击递减按钮时,编辑文本中的数值减一,当单击递增按钮时,编辑文本中的数值增加一。我想要的是设置编辑文本的最大数量和最小数量,这样当达到最大数量时,它会显示一个吐司,表明已达到最大数量,当也达到最小数量时,会显示一个吐司,显示那个最小数量。
这是我的 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 是编辑文本
只需在点击监听中添加校验逻辑即可
case R.id.btn_decrement:
if (Integer.parseInt(etQuantity.getText().toString()) + 1 < maximum) {
decreaseQuantity();
} else {
// make toast.
}
break;
case R.id.btn_increment:
if (Integer.parseInt(etQuantity.getText().toString()) - 1 > minimum) {
increaseQuantity();
} else {
// make toast.
}
break;
在Increment和decrement函数中添加如下代码即可。
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);
你好我有一个线性布局,它是父布局,它在编辑文本之前有一个编辑文本和一个递减按钮,在编辑文本之后有一个递增按钮。这个想法是,当单击递减按钮时,编辑文本中的数值减一,当单击递增按钮时,编辑文本中的数值增加一。我想要的是设置编辑文本的最大数量和最小数量,这样当达到最大数量时,它会显示一个吐司,表明已达到最大数量,当也达到最小数量时,会显示一个吐司,显示那个最小数量。
这是我的 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 是编辑文本
只需在点击监听中添加校验逻辑即可
case R.id.btn_decrement:
if (Integer.parseInt(etQuantity.getText().toString()) + 1 < maximum) {
decreaseQuantity();
} else {
// make toast.
}
break;
case R.id.btn_increment:
if (Integer.parseInt(etQuantity.getText().toString()) - 1 > minimum) {
increaseQuantity();
} else {
// make toast.
}
break;
在Increment和decrement函数中添加如下代码即可。
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);