繁体   English   中英

Android:清除edittext时清除键盘输入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM