【发布时间】:2014-12-09 13:00:29
【问题描述】:
我的edittext格式有以下代码,因为它可以接受任何输入我没有设置任何输入类型:
if (cardNumberEditText != null) {
cardNumberEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
int currSel = cardNumberEditText.getSelectionStart();
cardNumberEditText.removeTextChangedListener(textWatcher);
.
.
cardNumberEditText.setText(formattedNumber);
.
.
cardNumberEditText.setSelection(currSel);
cardNumberEditText.addTextChangedListener(textWatcher);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
所以最初我得到默认输入类型是 ABC,现在当我将其更改为 ?123(使用 ABC/123? 切换按钮)并输入一些数字后,键盘变回 ABC。此代码可以在三星设备 s3 和 sywpe 上正常工作,但不能在与 L 和 HTC one 的 nexus 上工作
当我注释 onTextChanged 中的所有代码时,它工作正常。所以当我调查我发现罪魁祸首是 cardNumberEditText.setText(formattedNumber);
我没有设置任何输入类型,我只是使用键盘上的 ABC/?123 切换键进行切换
任何帮助/建议为什么会发生这种情况(在少数设备上),我该如何纠正它??
【问题讨论】:
标签: android keyboard android-edittext android-softkeyboard