![](/img/trans.png)
[英]Android custom ListView - Edittext gets cleared when the soft keyboard hides
[英]Android: Clear keyboard input when edittext is cleared
我想为我的edittext设置一个自动的千位分隔符。 我是用textwatcher做的。 在
public void afterTextChanged(Editable s)
我保存我的edittext的当前值,用
@Override
public void afterTextChanged(Editable s) {
InputField.this.removeTextChangedListener(this);
double tmp = getDoubleValue();
s.clear();
s.append(DecimalFormat.getInstance(Locale.GERMAN).format(tmp));
InputField.this.addTextChangedListener(this);
}
});
但是,如果我清除了可编辑内容,则“ Galaxy Tab”中的“键盘”并不在乎。 它保留当前输入,并用完整的数字填充edittext。 一个简短的例子:
我输入“ 1”,键盘上插入“ 1”,编辑文本显示为“ 1”。
我输入“ 2”,键盘上插入“ 12”,edittext显示为“ 112”
我输入“ 3”,键盘上插入“ 123”,编辑文本显示为“ 112.123”
我按下删除按钮,键盘插入“ 12”,编辑文本显示为“ 11.212.312”。再次按下删除按钮,键盘插入“ 1”,编辑文本显示为“ 112.123.121”
我的问题是:如何禁用此键盘功能?
或如何清理此键盘的“缓存”?
如果我使用输入类型“ numberDecimal”,它可以工作,但是我不能将点用作千位分隔符(但是在德国,这是必需的),因为它们将被解释为小数点并且只能有一个。
我不确定是否可以清理缓存,但是如何禁用建议栏。您可以通过编程方式做到这一点:
YourEditText.setInputType(YourEditText.getInputType()
| EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS
| EditorInfo.TYPE_TEXT_VARIATION_FILTER);
或者,您也可以在EditText
XML标记中停用它。
<EditText>
android:inputType="textFilter
.... />
您也可以使用此值,但不幸的是,它不适用于所有设备,特别是HTC
android:inputType="textNoSuggestions"
编辑
有时它不起作用,因为它取决于键盘的实现来完成包括Flags在内的正确操作。但是,一切都有变通办法,您可以尝试使用XML编写以下代码:
android:inputType="textNoSuggestions|textVisiblePassword"
或使用Java:
yourEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
并给我一个反馈是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.