Android EditText中的InputFilter设置首位不能输空格
时间: 2024-03-26 16:40:03 浏览: 97
您可以通过实现InputFilter接口并重写其方法来实现该功能。具体来说,您可以在filter方法中检查要插入的文本是否以空格开头或结尾,并在需要时将其删除。
以下示例代码可以实现该功能:
```
public class NoLeadingTrailingSpaceFilter implements InputFilter {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
// 检查要插入的文本是否以空格开头或结尾
if (source.length() > 0
&& (Character.isWhitespace(source.charAt(0))
|| Character.isWhitespace(source.charAt(source.length() - 1)))) {
// 删除开头或结尾的空格
StringBuilder sb = new StringBuilder();
for (int i = start; i < end; i++) {
char c = source.charAt(i);
if (!Character.isWhitespace(c)) {
sb.append(c);
}
}
return sb.toString();
}
return null; // 返回null表示不做任何修改
}
}
```
在EditText中使用该InputFilter:
```
editText.setFilters(new InputFilter[] {new NoLeadingTrailingSpaceFilter()});
```
阅读全文