Edittext:最大长度为3的输入数字的maxLength

时间:2018-07-27 07:36:49

标签: android android-edittext android-textinputedittext

我想将字母输入的数量限制为18个字符,并且不能使用超过3个数字。

为了限制长度,我已经完成了代码,但不知道该如何处理3个数字。

<android.support.v7.widget.AppCompatEditText
                    android:id="@+id/name_et"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:maxLength="18"
                    android:layout_marginStart="5dp"
                    android:digits="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890 @#$"
                    android:layout_toEndOf="@+id/name_tv"
                    android:imeOptions="actionDone"
                    android:textColor="@android:color/black" />

1 个答案:

答案 0 :(得分:0)

您可以使用textWatchers来检查用户在three digits中输入的内容不要超过input field

           yourEdittext.addTextChangedListener(new TextWatcher()
        {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void afterTextChanged(Editable editable) {
                String numberRegx = "(?:\D*\d){3}";
                String currentString = yourEdittext.getText().length();            
                    if (currentString.matches(numRegex)) {
                        System.out.println("Invalid: " + input);
                 }else{
                        System.out.println("Valid: " + input);
               }
            }
        });