2016-03-29 4 views
0

焦点を当てていないときにスペルチェック:アンドロイド6.0/Nexus 5のオン赤い下線を無効にする/ TextViewには、私はこのように構成されたTextViews持っ

android:inputType="textMultiLine|textImeMultiLine|textAutoCorrect" 

をテキスト(自動修正、提案を入力するときに入力すると、すべてが正常に動作します、など)、編集が完了してTextViewにフォーカスがない場合、スペルの間違った単語には醜い赤い下線が付きます。どうやってそれらを取り除くのですか?

Stack Overflowでthis oneのような質問がありましたが、テキストビューにフォーカスが当たっている間に入力すると、赤い下線が削除されるため、オートコレクションが中断されるため、textNoSuggestionsを追加することはできません。

私はまた、TextViewの上のフォーカス変更のリスナーを使用してみましたが、動作していないよう:

setOnFocusChangeListener(new TextView.OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if (hasFocus) { 
       setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT); 
      } else { 
       setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE); 
      } 
     } 

    }); 

[UPDATE 1]私はEditTextの私のサブクラスがコンストラクタでsetOnFocusChangeListener()を呼び出していることに気づきました(これが動作することを確認しました)、ユーザがテキストビューでテキストの編集を開始または終了するたびに(つまり、キーボードが表示されているか隠されているかを示す)、onFocusChange()への呼び出しは発生しません。

[UPDATE 2] onFocusChange()が呼び出されなかった理由を、私は考え出しsetOnFocusChangeListener()はそれを上書き、同じTextViewの上と呼ばれていたアプリ内の別の場所があったが判明しました。現在は機能していますが、setInputType()を呼び出してフォーカスを外してからTYPE_TEXT_FLAG_NO_SUGGESTIONSを設定しても効果はありません。赤い線が表示されたままです。正確には、XMLにtextNoSuggestionsを設定するか設定しないと効果がありますが、これをプログラムでオーバーライドしようとすると、onFocusChange()の効果はありません。

答えて

0

あなたのコードは、あなたがラインの下にあなたの活動に コールsetInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS)

サンプルコードあなたの答えのための

tv.setOnFocusChangeListener(new TextView.OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if (hasFocus) { 
       tv.setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT); 
      } else { 
       tv.setInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE); 
      } 
     } 

    }); 
+0

感謝を追加する必要が正しい取り組んでいます。私はあなたの提案を試みたが、まだそれを動作させることができない:私の質問の更新を参照してください。 – Pol

+0

EditorInfoの代わりに@Polを使用するInputType –

+0

'EditorInfo'は' InputType'を実装しているので、値は同じです。違いはありません。 – Pol

関連する問題