android - MonoDroid 为 EditText 设置最大值

标签 android xamarin.android

有没有办法为 Activity 中创建的编辑文本设置最大值?例如,如果我不希望用户能够输入大于 8 的数字等。edittext 已经设置为数字字段。

et = new EditText(this);
et.InputType = (int)Android.Text.InputTypes.ClassNumber;

最佳答案

您应该在同一文件夹中创建一个新类“InputFilterMinMax.java”。

那么你应该使用过滤器:

textEdit = (TextView)findViewById(R.id.editText1);
textEdit.setFilters(new InputFilter[]{ new InputFilterMinMax("0", "180")});

在你的类 Activity 中(我将最小值设置为“0”,将最大值设置为“180”)。

InputFilterMinMax.java代码:

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

public class InputFilterMinMax implements InputFilter {

    private int min, max; //paramets that you send to class

    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());
            String startString = dest.toString().substring(0, dstart);
            String insert = source.toString();
            String endString = dest.toString().substring(dend);
            String parseThis = startString+insert+endString;
            int input = Integer.parseInt (parseThis);
            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;
    }
}

来源:Android set min max value an edittext accepts

关于android - MonoDroid 为 EditText 设置最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806492/

相关文章:

android - 我应该在 BindAdapter 类中使用 inject 吗?

android - 在 Google Play 上传更新

c# - 如何在 Xamarin.Android 中的小数点分隔符后显示 2 个或 3 个数字?

android - BiometricPrompt 类在 Xamarin Android 中不可用

android - 强制 Visual Studio 2017 使用特定的 Android 模拟器

c# - 带有图标的 Xamarin.Forms 列表应用程序(仅限 Android)

android studio jar 文件是红色的?

Android - 在 api 8 中使用 view.setX() 和 setY

c# - Xamarin Android.Speech 识别器 Intent 不会调用 OnActivityResult

安卓传递json