【问题标题】:SetText in TextWatcherTextWatcher 中的 SetText
【发布时间】:2014-09-08 07:45:47
【问题描述】:

setText() 方法有问题。当我在setText 数字键盘自动更改为字符键盘后在数字键盘中键入数字时。如何解除此操作?

textWatcher = new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

            @Override
            public void afterTextChanged(Editable s) {
                editText.removeTextChangedListener(textWatcher);

                String group = s.toString().toUpperCase();

                editText.setText(group);    
                editText.setSelection(editText.getText().length());
                editText.addTextChangedListener(textWatcher);
            }
        };

【问题讨论】:

  • 只是在 afterTextChanged 函数中添加这个。 editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

标签: android settext textwatcher


【解决方案1】:

我也有同样的问题。您可以将RelativeLayoutTextView 与您的EditText 一起使用

afterTextChanged 中使用setTexttextViewHere is more detail.

【讨论】:

    【解决方案2】:

    写这个

    editText.setRawInputType(TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL);
    

    之后

    editText.addTextChangedListener(textWatcher);
    

    【讨论】:

    • 第一个符号输入后切换到数字键盘,不要让切换回符号
    • 是的。它将 TYPE_CLASS_TEXT 更改为 TYPE_CLASS_NUMBERS,我无法切换回来。我只需要使用默认键盘,但是当我从“?123”键盘setText() 输入一些符号时,方法切换回“ABC”,我正在尝试解决这个问题。
    【解决方案3】:

    在你的 xml 文件中添加 EditText 标签

    android:inputType="number"
    

    如果此解决方案对您有帮助,请标记为已回答

    【讨论】:

    • 我需要输入字符和数字。但是当我尝试输入数字时,它会自动从数字变为字符键盘。
    猜你喜欢
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多