我的应用程序中有一个EditText,其中textChangeListener在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("");
}
}
});
问题是,当我在华硕ZenPad8.0(Android 6.0.1)上运行时,它只获得第一个输入的字符,之后“可编辑的s”只包含第一个字符。我在此设备上只有此问题,而对于其他设备,它会获得完整的输入文本。
有人有任何建议如何解决这个问题?
该错误与Asus ZenUI's keyboard
,你可以添加android:inputType="textNoSuggestions"
以避免这个问题。如需更完整的答案,请查看我对另一个问题的回答