EditText に入力するとポップアップする autosuggest リストをプログラムでオフにする方法はありますか?
17 に答える
同じ質問がありましたが、XML ファイルでこのオプションを設定したかったので、自分で見つけるまでもう少し調査を行いました。
この行を EditText に追加します。
android:inputType="textFilter"
ここにヒントがあります。「Enter」キーを使用できるようにする場合は、この行を使用します。
android:inputType="textFilter|textMultiLine"
android:inputType="textNoSuggestions"
また、これを読んだ方がいいです
android:inputType="textVisiblePassword"
魅力のように機能します
オートコンプリートを取り除くために私が見つけた最も信頼できるアプローチは、使用することです
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
EditText コントロールで。チャーリーがこのページの別の回答で報告したように、
android:inputType="textVisiblePassword"
このフラグの XML バージョンです。
このフラグと組み合わせることができます
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
ほとんどの電話で機能する InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS を InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD なしで使用していましたが、その後、まだオートコンプリートを取得している Samsung の電話に出くわしました。
Android エミュレーターで EditText のオートコンプリート/自動提案をプログラムで無効にする
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD の使用を提案しました。
私はこれを(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONSとともに)試しましたが、うまくいきました。オートコンプリートが不要であるというヒントを受け入れない電話でも、パスワード フィールドでオートコンプリートを無効にする必要がある理由がわかります。私たちの息を止めることはできませんが、これは私たちがそのような電話から欲しいものを得る最良の方法かもしれません.
一部のデバイスでは、このフラグによってフォントがわずかに変更されました。最も顕著なのは、ゼロ (0) とああ (O) をより明確に区別するためです。これは、パスワードを表示するために明らかに重要です。しかし、少なくともそれは機能し、新しいフォントは魅力的ではありませんでした.
この提案を見つけた投稿は古いものでしたが、テストした携帯電話はごく最近のもので、Sprint の Samsung Galaxy Note II (SPH-L900) ストック Android 4.1.2 です。選択されたキーボードは「Samsung Keyboard」で、顧客が Sprint から受け取ったときのこの電話のデフォルトだったようです。そのため、この問題は、重要な Samsung ラインの電話の少なくとも一部で、何年にもわたって解決されていないようです。
私のように、Samsung のテスト デバイスを持っていない人にとって、これは重要な情報になる可能性があります。
4.4.4を実行しているサムスンの携帯電話でこれを取得していました。これは私の問題を解決しました
android:inputType="text|textVisiblePassword|textNoSuggestions"
これはまだ問題なので、この回答を投稿します。android:inputType="textVisiblePassword" は機能しますが、最初は入力の不正確な表現であり、2 番目はジェスチャ タイピングを無効にするため、望ましくありません。
代わりに、textNoSuggestions と textFilter の両方のフラグを使用する必要がありました。どちらか一方だけでは機能しませんでした。
android:inputType="textCapSentences|textFilter|textNoSuggestions"
textCapSentences は他の理由によるものでした。しかし、このinputTypeはスワイプ入力を維持し、提案ツールバーを無効にしました。
OK、問題は-Eclipseでは次の名前のフラグの提案が得られないことでした:textNoSuggestion
また、inputTypeの属性が認識されないため、main.xml(UIを設計する場所)で設定することはできません。したがって、intconstを使用してコードで設定できます。
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
そして、これに対する数字の答えを私が助けてくれたjasta00に感謝します。
// 100% correct & tested
txtKey = (EditText) view.findViewById(R.id.txtKey);
txtKey.setPrivateImeOptions("nm");
txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
}
android:inputType="text|textNoSuggestions"
EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
これはあなたを助けるでしょう。
EditText のsetThreshold()
メソッドを使用するだけです。予測を表示したくない場合は、しきい値を 100 に設定します。予測の表示を再度有効にしたい場合は、必要に応じて 1 や 2 などの小さな int に戻してください。