Android edittext仅获得一个输入字符

时间:2018-12-04 08:10:02

标签: android android-edittext

我的应用程序中有一个带有textChangeListener的EditText,可以在afterTextChanged上转换数字格式。

这是我在布局文件中的EditText:

<EditText
            android:id="@+id/zone_name"
            android:layout_width="250dp"
            android:layout_height="match_parent"
            android:background="@drawable/margin_shape_table"
            android:paddingStart="8sp"
            android:paddingEnd="8sp"
            android:singleLine="true"
            android:inputType="text"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"/>

这是我的侦听器代码:

zoneName.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            String char1 = s.toString();
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() > 0){
                zoneName.removeTextChangedListener(this);
                zoneName.setText(converter.convertNumbers(s.toString()));
                zoneName.addTextChangedListener(this);
                zoneName.setSelection(s.length());
            }else {
                zoneName.setText("");
            }
        }
    });

问题是,当我在Asus ZenPad8.0(android 6.0.1)上运行它时,它只会得到第一个输入的字符,而在此之后,“ Editable s”仅包含第一个字符。 我仅在此设备上有此问题,对于其他设备,它会获得完整输入的文本。

有人对如何解决这个问题有什么建议吗?

1 个答案:

答案 0 :(得分:0)

该错误与Asus ZenUI's keyboard有关,您可以添加android:inputType="textNoSuggestions"来避免此问题。 要获得更完整的答案,请检查我对另一个问题的回答

https://stackoverflow.com/a/55933884/3880796