android–EditText输入过滤器导致重复的字母

android–EditText输入过滤器导致重复的字母,第1张

概述我一直在限制输入到我的edittext这样的;InputFilter filter = new InputFilter() { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

我一直在限制输入到我的edittext这样的;

inputFilter filter = new inputFilter() {         public CharSequence filter(CharSequence source,int start,int end,Spanned dest,int dstart,int dend) {            String output = "";            for (int i = start; i < end; i++) {                if (source.charat(i)!='~'&&source.charat(i)!='/') {                    output += source.charat(i);                 }            }             return output;        }    };

但是任何使用过这种方法的人都会知道,当它与自动纠正和退格键混合时会导致重复的字符.为了解决这个问题,我从键盘上取下了自动校正条,就像这样;

Edittect.setinputType(inputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

现在这在股票安卓键盘上工作正常,但问题是在替代键盘上(来自谷歌播放)它不会禁用自动更正,因此我遇到了重复字符的问题.有没有人遇到这个/知道如何解决它?最佳答案编辑 – 这不是很有效.在一些设备上(看起来像大多数samsungs)重复的字母问题回来了 – 只是稍微不那么频繁.

我会认真地建议找到一种限制输入的不同方法,因为输入过滤器目前有一些严重的问题.

我建议如下:

>使用androID:digits xml属性
>在需要时检查edittext的内容,而不是输入内容
>你可以玩文本观察者,但我发现效果不佳 – 如果你找到一个使用文本观察者的工作解决方案,请告诉我.

我想出了问题 – 这就是我最后使用的

inputFilter() {@OverrIDepublic CharSequence filter(CharSequence source,int dend) {    if (source instanceof SpannableStringBuilder) {        SpannableStringBuilder sourceAsspannableBuilder = (SpannableStringBuilder)source;        for (int i = end - 1; i >= start; i--) {             char currentChar = source.charat(i);             if (currentChar=='/' || currentChar=='~') {                     sourceAsspannableBuilder.delete(i,i+1);             }             }        return source;    } else {        StringBuilder filteredStringBuilder = new StringBuilder();        for (int i = 0; i < end; i++) {             char currentChar = source.charat(i);            if (currentChar != '~'|| currentChar != '/') {                    filteredStringBuilder.append(currentChar);            }             }        return filteredStringBuilder.toString();    }}}
总结

以上是内存溢出为你收集整理的android – EditText输入过滤器导致重复的字母全部内容,希望文章能够帮你解决android – EditText输入过滤器导致重复的字母所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1140242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存