0

我想将字母输入的数量限制为 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" />
4

1 回答 1

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);
               }
            }
        });
于 2018-07-27T07:56:49.887 回答