Risposte:
Avevo la stessa domanda, ma volevo comunque impostare questa opzione nel mio file XML, quindi ho fatto un po 'più di ricerca finché non l'ho scoperto da solo.
Aggiungi questa riga al tuo EditText.
android:inputType="textFilter"
Ecco un suggerimento. Usa questa riga se vuoi essere in grado di usare il tasto "invio".
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
con il testo suggerito ma mostra ancora la riga dei suggerimenti (con l'icona del microfono).
android:inputType="textNoSuggestions"
anche tu faresti meglio a leggere questo
android:inputType="textVisiblePassword"
funziona come un fascino
.
carattere punto aggiunto alla fine della parola se due spazi vengono digitati dopo quella parola. L'ho usato per la barra delle azioni searchView ((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Modi per farlo:
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
android:inputType="textNoSuggestions"
Se hai già impostato alcuni flag, allora:
inputType = if (disableSuggestions) {
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
android:inputType="textNoSuggestions|textPassword"
L'approccio più affidabile che ho trovato per sbarazzarmi del completamento automatico è usare
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
sul controllo EditText. Come ha riportato Charlie in una risposta diversa in questa pagina,
android:inputType="textVisiblePassword"
è la versione XML di questo flag.
Puoi combinare questa bandiera con
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
Stavo usando InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS senza InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, che ha funzionato per la maggior parte dei telefoni, ma poi mi sono imbattuto in un telefono Samsung per il quale stavo ancora ottenendo il completamento automatico.
che ha suggerito di utilizzare InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
Ho provato questo (insieme a InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) e ha funzionato. Si può capire perché anche un telefono che potrebbe non prendere il suggerimento che non si vuole completamento automatico potrebbe avere per permettere che sia disattivata per un campo password. A corto di trattenere il respiro, questo potrebbe essere il modo migliore per ottenere ciò che vogliamo da questi telefoni.
Su alcuni dei miei dispositivi, il carattere è stato leggermente modificato da questo flag, in modo più evidente per distinguere più chiaramente uno zero (0) da un Oh (O), il che ovviamente sarebbe importante per la visualizzazione di una password. Ma almeno ha funzionato e il nuovo carattere non era poco attraente.
Anche se il post su cui ho trovato questo suggerimento era vecchio, il telefono su cui ho provato era molto recente: un Samsung Galaxy Note II (SPH-L900) Android 4.1.2 di Sprint. La tastiera selezionata era "Samsung Keyboard" e apparentemente questa era l'impostazione predefinita per questo telefono quando il cliente l'ha ricevuta da Sprint. Quindi questo problema apparentemente è persistito nel corso degli anni almeno per alcune delle importanti linee di telefoni Samsung.
Per quelli di voi che, come me, non hanno un dispositivo di prova Samsung, questa potrebbe essere un'informazione importante.
Per la versione Android 8.0 o successiva questo codice non funziona e per la visualizzazione del testo con completamento automatico anche questo codice non funziona, quindi ti suggerirò di utilizzare il codice seguente per Disabilitare i suggerimenti automatici in 8.0 o versioni successive Android vesrion usa questa proprietà di edittext android: importantForAutofill = "no"
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:focusable="false"
android:imeOptions="actionDone"
android:maxLength="80"
android:maxLines="1"
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorBlack"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp"
app:bFontsEdt="light" />
e per la visualizzazione del testo di completamento automatico come questa, utilizza questo campo per disabilitare il suggerimento automatico android: importantForAutofill = "no" :
<AutoCompleteTextView
android:id="@+id/autocompleteEditTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_3sdp"
android:layout_marginTop="@dimen/_5sdp"
android:background="@null"
android:imeOptions="actionDone"
android:singleLine="true"
android:text=""
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorGrayDark"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp" />
Puoi risolvere questo problema usando questo:
android:importantForAutofill="no"
Android O ha la funzione di supportare il riempimento automatico per i campi, usalo solo nel tuo xml, disabiliterà i suggerimenti di compilazione automatica
Poiché questo è ancora un problema, posterò questa risposta. android: inputType = "textVisiblePassword" funziona ma non è desiderabile, in primo luogo perché rappresenta una falsa rappresentazione dell'input e in secondo luogo perché disabilita la digitazione gestuale!
Invece ho dovuto usare ENTRAMBI i flag textNoSuggestions e textFilter. Nessuno dei due da solo non ha funzionato.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
Il textCapSentences era per altri motivi. Ma questo inputType ha mantenuto la digitazione a scorrimento e disabilitato la barra degli strumenti dei suggerimenti.
Stavo ricevendo questa cosa sui telefoni Samsung con 4.4.4. Questo ha risolto il mio problema
android:inputType="text|textVisiblePassword|textNoSuggestions"
OK, il problema era: in Eclipse non si ottengono suggerimenti per la bandiera denominata: textNoSuggestion
E non puoi impostarlo in main.xml (dove progetti l'interfaccia utente) perché quell'attributo per inputType non è riconosciuto. Quindi puoi impostarlo nel codice usando int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
E grazie jasta00 per avermi aiutato a capire la risposta per questo.
android:inputType="text|textNoSuggestions"
// 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);
}
Potresti semplicemente usare il setThreshold()
metodo EditText . Imposta la soglia su diciamo 100 quando non vuoi mostrare previsioni. Se desideri riattivare la visualizzazione delle previsioni, impostalo su un piccolo int come 1 o 2 a seconda delle tue esigenze.