【问题标题】:How to check EditText for alphabet validation in Android [duplicate]如何在 Android 中检查 EditText 的字母验证 [重复]
【发布时间】:2018-05-10 08:17:37
【问题描述】:

在我的应用程序中,我想使用 EditText,为此我应该为 EditText 设置 limited
在我的EditText 只支持字母(a-z,A-Z)中,为此我写了以下代码:

registerUsernameEdtTxt.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        registerUsernameEdtTxt.setFilters(new InputFilter[]{new InputFilter() {
            public CharSequence filter(CharSequence src, int start,
                                       int end, Spanned dst, int dstart, int dend) {
                if (src != null && src.length() > 0 && dstart == 0) {
                    if (src.toString().matches("[a-zA-Z ].*")) {
                        registerUsernameInptLay.setErrorEnabled(false);
                        return src;
                    }
                } else {
                    registerUsernameInptLay.setError(context.getResources().getString(R.string.insertJustEnglish));
                }
                return "";
            }
        }});
    }

XML 代码:

<android.support.design.widget.TextInputLayout
                                android:id="@+id/registerUsernameInptLay"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/registerUserNameErrTxt"
                                app:counterEnabled="true"
                                app:counterMaxLength="20">

                                <EditText
                                    android:id="@+id/registerUsernameEdtTxt"
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
                                    android:fontFamily="sans-serif"
                                    android:hint="@string/registerUsername"
                                    android:inputType="text"
                                    android:textColor="@color/darkBlueGrey"
                                    android:textSize="@dimen/font16" />
                            </android.support.design.widget.TextInputLayout>

但是当写 Characters 时会显示这个错误:

   <string name="insertJustEnglish">Username can only start with alphabet characters.</string>

我该如何解决?

【问题讨论】:

  • 什么错误?要限制EditText,您可以在xml 中使用android.digits
  • 在aftertextchanged()方法中写代码
  • 在您的 EditText 标签中添加 android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  • @ADM,我只想支持字母,而不是其他字符!只是字母
  • @AmitRanjan,不适合我!

标签: java android android-edittext android-textinputedittext


【解决方案1】:

把它写在你的 EditText 标签中

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

【讨论】:

    猜你喜欢
    • 2014-02-19
    • 2017-07-05
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2020-12-16
    相关资源
    最近更新 更多