Java 将edittext中的文本数限制为13位

Java 将edittext中的文本数限制为13位,java,android,Java,Android,如何确保此edittext上输入的文本仅为13位数字。这是我的尝试,但用户可以输入5位数字,但我希望它是13位 <EditText android:id="@+id/phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="phone" android:maxLength=

如何确保此edittext上输入的文本仅为13位数字。这是我的尝试,但用户可以输入5位数字,但我希望它是13位

<EditText
        android:id="@+id/phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="phone"
        android:maxLength="13"
        android:layout_below="@+id/TextView01"
        android:layout_centerHorizontal="true"
        android:ems="10"/>

我不知道您到底想做什么,但也许您可以尝试以下方法之一:

  • 除非edittext.getText().length()==13,否则不要设置文本(据我所知,您将在特定时刻设置它)。如果它不是您想要的长度,您可以显示一条消息,比如
  • 在edittext上添加一个TextWatcher(通过onTextChangedListener),并跟踪用户输入

  • 我不知道您到底想做什么,但也许您可以尝试以下方法之一:

  • 除非edittext.getText().length()==13,否则不要设置文本(据我所知,您将在特定时刻设置它)。如果它不是您想要的长度,您可以显示一条消息,比如
  • 在edittext上添加一个TextWatcher(通过onTextChangedListener),并跟踪用户输入

  • 我认为这个问题以前已经解决过:它还没有得到解决。它涉及添加maxlength,但不是确保maxlength为enteredIt的约束。它涉及自定义输入筛选器和maxlength(您的案例)。请检查以查看更新的代码您需要的代码不受限制。通过使用
    maxLength
    ,限制为13。你需要最小长度。你必须自己检查一下。我想这个问题以前已经解决了:还没有解决。它涉及添加maxlength,但不是确保maxlength为enteredIt的约束。它涉及自定义输入筛选器和maxlength(您的案例)。请检查以查看更新的代码您需要的代码不受限制。通过使用
    maxLength
    ,限制为13。你需要最小长度。你得自己检查一下。
    final EditText phone = (EditText)findViewById(R.id.phone);
    
                InputFilter[] filterArray = new InputFilter[1];
                filterArray[0] = new InputFilter.LengthFilter(11);
                phone.setFilters(filterArray);
    
    if(Double.parseDouble(phone.getText().toString()) > 11)
                {
                    //the above if text always fails
                }