gpt4 book ai didi

android - 有没有办法在 Android 中定义 EditText 的最小值和最大值?

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:11 24 4
gpt4 key购买 nike

我想定义 EditText 的最小值和最大值。

例如:如果有人尝试在其中输入月份值,则该值必须在 1-12 之间。

我可以使用 TextWatcher 来做到这一点,但我想知道是否有其他方法可以在布局文件或其他地方做到这一点。

编辑:我不想限制字符数。我想限制该值。例如,如果我在输入 12 时限制月份 EditText w 字符,它将接受它,但如果我输入 22,它在我输入时不得接受它。

最佳答案

首先创建这个类:

package com.test;

import android.text.InputFilter;
import android.text.Spanned;

public class InputFilterMinMax implements InputFilter {

private int min, max;

public InputFilterMinMax(int min, int max) {
this.min = min;
this.max = max;
}

public InputFilterMinMax(String min, String max) {
this.min = Integer.parseInt(min);
this.max = Integer.parseInt(max);
}

@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
try {
int input = Integer.parseInt(dest.toString() + source.toString());
if (isInRange(min, max, input))
return null;
} catch (NumberFormatException nfe) { }
return "";
}

private boolean isInRange(int a, int b, int c) {
return b > a ? c >= a && c <= b : c >= b && c <= a;
}
}

然后从您的 Activity 中使用它:

EditText et = (EditText) findViewById(R.id.myEditText);
et.setFilters(new InputFilter[]{ new InputFilterMinMax("1", "12")});

这将允许用户仅输入 1 到 12 之间的值

编辑:

使用 android:inputType="number" 设置编辑文本。

您可以在 https://www.techcompose.com/how-to-set-minimum-and-maximum-value-in-edittext-in-android-app-development/ 找到更多详细信息.

谢谢。

关于android - 有没有办法在 Android 中定义 EditText 的最小值和最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com