EditText
を拡張してカスタムを作成しましたandroid.widget.EditText
。
EditText
がフォーカスされている場合にのみ、オートコレクトスパンを表示したいと思います。setInputType(INPUT_NO_FOCUS);
だから私はコンストラクターを呼び出して:
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
if (focused) {
setInputType(INPUT_FOCUS);
} else {
setInputType(INPUT_NO_FOCUS);
}
}
と:
private final int INPUT_NO_FOCUS = TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE
| InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
private final int INPUT_FOCUS = TYPE_CLASS_TEXT | TYPE_TEXT_FLAG_MULTI_LINE
| InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | InputType.TYPE_TEXT_FLAG_AUTO_COMPLET;
==>オートコレクトとオートコンプリートはありませんが、をクリックしても表示されませんEditText
。入力タイプが正常に変更されました。
オートコレクトをトリガー/オートコンプリートを追加するにはどうすればよいですか?
//編集:
アーカイブしたいユースケース:
MyEditText extends EditText
ビューが表示され、フォーカスされていません。テキストにスペルチェックはありません(->テキストの下に赤いスパン/行はありません)ユーザーが編集フィールドをクリックして。->スペルチェックがトリガーされます->赤い線が表示されます(ユーザーは間違ったスペルの単語をクリックして、OSに修正させることができます)
ユーザーが別のビュー要素をクリックすると、赤い線/スパンが消えます。