Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android EditText maxLength不工作_Java_Android_Filter_Android Edittext_Maxlength - Fatal编程技术网

Java android EditText maxLength不工作

Java android EditText maxLength不工作,java,android,filter,android-edittext,maxlength,Java,Android,Filter,Android Edittext,Maxlength,这是我的xml <EditText android:id="@+id/et_comment" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textNoSuggestions|textVisiblePassword" android:hint="Provide co

这是我的xml

<EditText
android:id="@+id/et_comment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions|textVisiblePassword"
android:hint="Provide comments here..."
android:gravity="top"
android:maxLength="5"
android:textSize="12sp"
android:visibility="visible"
/>
maxLenth不工作,我不知道为什么,但它不工作。
我已经检查了堆栈上的其他答案,但它们也不起作用。
请检查EditText属性是否存在冲突,或者问题是什么

编辑:其他开发人员也面临同样的问题
参见评论Mansi和aat正面临同样的问题
在评论中,Vincy和Ripper也面临着同样的问题

编辑:问题已解决
我使用的输入过滤器会覆盖xml中的最大长度,使其无法工作。
输入筛选器不适用于我的原因是,我使用的另一个输入筛选器覆盖了以前的maxLength输入筛选器。

将其转换为单个输入筛选器为我解决了这个问题。

如果您对edittext使用InputFilter,那么maxLength将不起作用。

相当旧的帖子,但我注意到XML是一个实际的
edittext
对象,将过滤器添加到
文本视图
时,该视图的处理方式可能与
编辑文本
不同。如果手动添加
InputFilter
对象,则会覆盖xml属性

InputFilter
s添加到
View
的示例代码似乎是
TextView
对象。确保你拉到了正确的视图,如果你使用手动添加的过滤器,它将被转换为
EditText
——它现在对我有效


祝你好运。

试试这个,它对maxlenght和输入过滤器都有效

month.setFilters(new InputFilter[]{new InputFilterMinMax("0", "12"), new InputFilter.LengthFilter(2)});

如果您已经有InputFilter,那么maxLength将不起作用。您必须创建一个额外的InputFilter并添加它:

    // Filter for comma character
    String blockCharacterSet = ",";
    InputFilter filter = (source, start, end, dest, dstart, dend) -> {
        if (source != null && blockCharacterSet.contains(("" + source))) {
            return "";
        }
        return null;
    };

    // Filter for max Length
    InputFilter filter1 = new InputFilter.LengthFilter(20);

    // Set the filters
    et_list_name.setFilters(new InputFilter[] { filter, filter1 });

添加字符限制和输入限制。

   private String BlockCharacterSet_Name = "\\@$#!=><&^*+\"\'";   

 mFirstName.setFilters(new InputFilter[] {new InputFilter.LengthFilter(25),inputFilter_Name});



 private InputFilter inputFilter_Name = new InputFilter() { //filter input for name fields
        @Override
        public CharSequence filter(CharSequence charSequence, int i, int i1, Spanned spanned, int i2, int i3) {
            if (charSequence != null && BlockCharacterSet_Name.contains(("" + charSequence))) {
                return "";
            }
            return null;
        }
    };
private String BlockCharacterSet\u Name=“\\@$\!=”>尝试以下操作:

val existingFilters: Array<InputFilter> = editText.filters
editText.filters = existingFilters.apply { plus(filter) }
val existingFilters:Array=editText.filters
editText.filters=existingFilters.apply{plus(filter)}

您需要获取通过XML应用的现有筛选器列表,如maxLength,然后向其中添加更多筛选器。在您的情况下,editText的maxLength属性已被您尝试应用的自定义InputFilter覆盖。

它正在工作,android:maxLength=“5”“工作!但它对我不起作用:/我建议你用USB调试手机。我就是这么做的!让我们看看你说的“不工作”是什么意思?可能是一个屏幕截图或其他什么东西这行在本月很有用。setFilters(new InputFilter[]new InputFilter.LengthFilter(2)});特别是,如果您想应用多个过滤器,xamarin是:new Android.Text.InputFilterLengthFilter(2)
val existingFilters: Array<InputFilter> = editText.filters
editText.filters = existingFilters.apply { plus(filter) }