"Attribut autofillHints manquant"

92

J'ai un problème avec Palette -> Text
Lorsque je veux définir une vue, je reçois un message problème "Missing autofillHints attribute"
Des suggestions?

Sébastien
la source
1
tools:ignore="Autofill"est le seul moyen d'ignorer pour l'instant.
Pratik Butani

Réponses:

93

Peut-être que vous utilisez un fichier EditText. autofillHintsest utilisé dans l'API 26 et plus pour remplir les EditTexts vides et cela suggère en fait quel type de contenu doit y être placé.

Ajoutez simplement :

android:autofillHints="username" // the type of content you want

À votre EditTextet l'avertissement disparaîtra.

Pour ce faire, utilisez le nouvel android:autofillHintsattribut pour indiquer le autofill type de contenu que vous attendez et android:importantForAutofillpour indiquer les autofillvues que vous souhaitez (ou ne voulez pas) remplir.

Lire: https://medium.com/@bherbst/getting-androids-autofill-to-work-for-you-21435debea1

Et ceci: https://developer.android.com/guide/topics/text/autofill-services


Éditer:

Vous pouvez cependant définir:

android:importantForAutofill="no"

Au composant de dire qu'il n'est pas important de remplir et de se débarrasser de l'erreur.

ʍѳђ ઽ ૯ ท
la source
Encore des erreurs :( "Étiquette d'accessibilité manquante" "Attribut inutilisé sur l'ancienne version"
Sebastian
Puis-je voir une capture d'écran? Il devrait disparaître après cela.
ʍѳђ ઽ ૯ ท
Encore des erreurs :( "Étiquette d'accessibilité manquante" "Attribut inutilisé sur l'ancienne version"
Sebastian
Je suis une nouvelle personne ici, donc je ne peux pas encore envoyer de photos :(
Sebastian
1
Remarque: "importantForAutofill" n'est utilisé que dans l'API niveau 26 et supérieur
bunkerdive
91

Si tu ne veux pas autofillHints

minSdk> = 26 .

Devrait utiliser android:importantForAutofill=nosi vous ne voulez pas d'indicateur de remplissage automatique

<EditText
        android:importantForAutofill="no"/>

minSdk <26

1) Utiliser tools:ignore="Autofill"

<EditText
        tools:ignore="Autofill"/>

2) Ou ajoutez android:importantForAutofillalors tools:targetApipour que l'EDI n'ait pas cet avertissement sur le niveau d'API

<EditText
        android:importantForAutofill="no"
        tools:targetApi="o"
 />

Si tu veux autofillHints

minSdk> = 26

  • Il suffit d'ajouter android:autofillHints="{a contant value}"(par exemple:) "android:autofillHints="password"(utiliser la constante d' ici )

minSdk <26 , ajoutez tools:targetApipour que l'IDE ne fasse pas cet avertissement

    <EditText
            android:autofillHints="email"
            tools:targetApi="o"/>

Remarque

  • autofillHintset importantForAutofillutilisé uniquement dans l'API 26 et supérieur, mais nous pouvons toujours l'utiliser dans l'API <26 sans crash ( vous pouvez le voir dans cette réponse) (cela ne plante pas mais bien sûr cela n'a aucun effet avec l'API <26)

  • tool:... utilisez simplement pour que l'EDI ne prévienne pas, cela n'affectera rien lors de l'exécution de l'application

Phan Van Linh
la source
2
Selon la documentation - developer.android.com/reference/android/view/… - la android:autoFillHintsconstante pour une adresse e-mail est emailAddressplutôt que juste email.
ban-geoengineering le
@ ban-geoengineering ce commentaire m'a été plus utile que la réponse entière. Merci une tonne
Kartik
Cette réponse est mieux structurée et plus lisible que celle acceptée.
Touhid
0

vous avez besoin du fichier strings.xml et activez le texte de la chaîne, par exemple:

<string name="editText2">Name</string>.

alors vous devez activity_mail.xml- et puis activer l' activité de remplissage automatique là-bas, en utilisant:

android:hint="@string/editText2"
Magomed.Khamidov
la source
Il n'y a pas de solution au problème
djardon