我的应用程序中有一个带有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”仅包含第一个字符。 我仅在此设备上有此问题,对于其他设备,它会获得完整输入的文本。
有人对如何解决这个问题有什么建议吗?
答案 0 :(得分:0)
该错误与Asus ZenUI's keyboard
有关,您可以添加android:inputType="textNoSuggestions"
来避免此问题。
要获得更完整的答案,请检查我对另一个问题的回答