我想为我的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”,编辑文本显示“112”
我键入“3”,键盘插入“123”,编辑文本显示“112.123”
我按下删除按钮,键盘插入“12”,编辑文本显示“11.212.312”
我再次按下删除按钮,键盘插入“1”,编辑文本显示“112.123.121”
我的问题是: 如何禁用此键盘功能?
或如何清理此键盘“缓存”?
如果我使用inputtype“numberDecimal”,它可以工作,但我不能使用点作为千位分隔符(但在德国需要它),因为它们将被解释为十进制标记,并且只能有一个。
答案 0 :(得分:3)
我不确定您是否可以清理缓存,但是如何禁用建议栏...您可以以编程方式执行此操作:
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中尝试以下代码: / p>
android:inputType="textNoSuggestions|textVisiblePassword"
或在Java中:
yourEditText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
如果有效则给我一个反馈..