【发布时间】:2020-05-11 03:30:21
【问题描述】:
我设置了一个带有过滤器的 EditTextPreference 来限制它的大小,如下所示:
pref.setOnBindEditTextListener(new EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(10)});
}
});
我还想将其限制为仅接受字母(不仅仅是 a-zA-Z,因为该应用接受不止一种语言)。我该怎么做?
我之前尝试过很多过滤器,包括这些问题中建议的所有过滤器以及类似的过滤器:
Making an EditText field accept only letters and white spaces in Android
Edittext only allow letters (programmatically)
使用这样的过滤器,每当输入一个数字然后输入一个字母时,我都会遇到以下问题:
- 整个文本消失
- 整个文本被重复
- 最后几个字符重复
我还尝试通过添加和android:digits 来更改 XML,但无论如何它根本不会限制输入。
到目前为止,我尝试过的每个inputType 都不会将键盘限制为只有字母。
编辑:我想通了,在下面回答。
【问题讨论】:
标签: android android-edittext androidx edittextpreference