是否可以禁用;“周期”的双击;在Android编辑文本中?
它弄乱了我的编辑文本过滤器。当我双击空格时,上一个字符将被删除。这是我的过滤器:是否可以禁用;“周期”的双击;在Android编辑文本中?,android,android-edittext,Android,Android Edittext,它弄乱了我的编辑文本过滤器。当我双击空格时,上一个字符将被删除。这是我的过滤器: @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if (!isValid(source)) { // This simple calls Matcher.matches return "
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (!isValid(source)) { // This simple calls Matcher.matches
return "";
}
return null;
}
当我双击空格键时,将使用以下来源调用过滤器三次:
if(source.toString().isEmpty()) {
return ((Character) dest.toString().charAt(dest.toString().length()-1)).toString();
}
它解决了这个问题,但我不能再退格了,因为这是一个解决办法。是否有一种方法可以仅针对此单个EditText禁用“双击句点空格”功能?我注意到Google Chrome应用程序中的地址栏似乎禁用了此功能,只将双击的空格视为两个空格。在我的情况下,我的输入只是一行字段。我只需将inputType设置为textVisiblePassword:
android:inputType="textVisiblePassword"
这也会处理我的规范,以禁用建议/字典。但是,我想看看是否有其他方法可以做到这一点,因为其他人可能需要建议/字典,只想禁用双击句点功能。欢迎提供更多答案。主要的黑客攻击,但如果您在输入过滤器中的文本中不允许使用空格或句点,则此操作有效:-) 然后为输入过滤器的其余部分添加所需的内容 我们真的应该有一个inputType来禁用自动同步:-(
private char prevLastChar;
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
boolean isAutoPeriod = StringUtils.eq(source.toString(), ". ");
if (!isAutoPeriod && (dstart == dend) && (dend == dest.length()) && (dest.length() > 0)) {
prevLastChar = dest.charAt(dest.length()-1);
}
if (isAutoPeriod && (dstart == dend) && (dend == dest.length())) {
if (source instanceof SpannableStringBuilder) {
return SpannableStringBuilder.valueOf(Character.toString(prevLastChar));
} else {
return Character.toString(prevLastChar);
}
}