【发布时间】:2016-04-11 22:43:54
【问题描述】:
我创建了一个类,负责按照观察者模式监视EditText 小部件。它的唯一功能是根据方法调用禁用或重新启用自动更正。我能够成功实现这一点,但问题是新的InputType 仅适用于我添加到EditText 的新文本 - 旧文本仍保留红色下划线以表明它可以自动更正。
有什么办法可以强制新的InputType 应用于整个EditText 块,而不仅仅是我添加的新内容?我试着打电话给editText.invalidate() 和editText.refreshDrawableState(),希望所有的文字都会刷新,但无济于事。
final class SpellCheckerObserver implements EditTextObserver {
public static final int KEY = KeyGenerator.generateUniqueId();
private int defaultInputType;
SpellCheckerObserver(EditTextSubject subject) {
subject.attach(SpellCheckerObserver.KEY, this);
}
@Override
public void activating(EditText editText) {
defaultInputType = editText.getInputType();
editText.setRawInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
}
@Override
public void deactivating(EditText editText) {
editText.setInputType(defaultInputType);
}
}
【问题讨论】:
标签: android android-edittext android-inputtype