我一直在像这样限制我的编辑文本的输入;
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);
现在,这在现有的Android键盘上运行良好,但问题是在替代键盘上(来自Google play),它不禁用自动更正,因此我再次遇到重复字符的问题。有人遇到过这个问题吗/知道如何解决吗?
在XML中的EditText
中使用它来解决此问题:
android:inputType="textFilter"
编辑-这不太管用。在一些设备上(看起来像大多数三星),重复字母问题再次出现,只是频率稍低。
我强烈建议找到一种不同的方法来限制输入,因为输入过滤器目前存在一些严重的问题。
我建议如下:
Android:数字
xml 属性我想出问题了——这是我最后用的
InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, 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();
}
}
}
我正在尝试实现一个编辑文本,将输入限制为仅 Alpha 字符 [A-Za-z]。 我从本文中的InputFilter方法开始。当我键入“a%”时,文本消失,如果我按退格键,文本为“a”。我尝试过过滤器函数的其他变体,比如使用正则表达式只匹配[a-Za-z],有时会看到疯狂的行为,比如重复字符,我会键入“a”,然后键入“b”,再键入“aab”,然后再键入“c”,再得到“aabaabc”,然后按退格键
我正在开发一个Android聊天应用程序。一切运作良好,但除了一件事;我想设置一个布局的可见性消失,然后设置一个不同的布局可见时,用户开始输入编辑文本,就像在WhatsApp上实现的。但是我似乎想不明白。任何帮助都将不胜感激 基本上,我想做的是设置一个布局的可见性,该布局包含一个图像按钮,用于将图像上载到gone,然后显示一个布局,该布局包含一个图像按钮,用于在用户开始键入时将edittext中的
我正在尝试实现一个仅将输入限制为大写字符[A-Z0-9]和数字。 我从某篇文章开始使用InputFilter方法。但我在三星Galaxy Tab 2上遇到了一个问题,但在模拟器或Nexus 4上没有。 问题是这样的: 当我键入“A”时,文本显示为“A”很好 现在,当我键入“B”时,文本应该是“AB”,但它给了我“AAB”,这看起来很奇怪 简而言之,它重复字符 以下是我正在使用此代码的代码: 文件代
我一直有一些来自EditText的奇怪行为的问题。setSelect,我希望你们都能帮忙! 我正在开发的应用程序有一个搜索字段,需要让它的行为非常类似于浏览器的搜索栏。例如,如果用户键入“fo ”,我们希望EditText自动完成“foobar ”,并突出显示自动完成的“obar”文本,以便在自动完成的文本与用户想要键入的内容不匹配时,用户可以很容易地替换它。 为了实现这一点,我设置了一个带有Te
我有以下输入-窗体-控件: 但是如果我像上面那样使用我的regex,我可以输入'、'或‘。符号。正确的正则表达式是什么?
我正在使用设计库中新的TextInputLayout。我可以让它显示并改变浮动标签的颜色。不幸的是,它不会将文本改为大写。 我不想更改我的字符串.xml,因为我只想让这个标签是大写的。我尝试过在布局,样式和编程方式中更改文本AllCaps,但是EditText提示的情况始终与字符串完全相同.xml。 下面是我的TextInputLayout和EditText的XML 下面是我为TextInputL