62 votes

Hardcoded string "row three", should use @string resource

Je suis un développeur Android débutant, j'essayais de lancer cette Linear Layout dans eclipse :

Et, j'ai remarqué :
1) la ligne jaune sous android:text="yellow"
2) la ligne jaune sous android:text="row four"
le triangle d'avertissement dit [I18N] Chaîne codée en dur "yellow", devrait utiliser la ressource @string " et la même chose pour le reste des avertissements. Des suggestions ?

129voto

Kuffs Points 12318

Il n'est pas recommandé d'intégrer des chaînes de caractères directement dans vos fichiers de mise en page. Vous devriez les ajouter à un fichier de ressources de chaînes et ensuite les référencer depuis votre mise en page.

Cela vous permet de mettre à jour chaque occurrence du mot "Jaune" dans toutes les mises en page en même temps en modifiant simplement votre fichier strings.xml.

C'est également extrêmement utile pour prendre en charge plusieurs langues car un fichier strings.xml distinct peut être utilisé pour chaque langue prise en charge.

exemple : Fichier XML enregistré sous res/values/strings.xml :

    Jaune

Ce XML de mise en page applique une chaîne de caractères à une View :

De même, les couleurs devraient être stockées dans colors.xml et ensuite référencées en utilisant @color/nom_couleur

    #000000

13voto

Hanson So Points 72

Vous devez les créer sous strings.xml

Fermer    

Vous devez remplacer et référencer de cette manière

android:text="@string/close"/>

Ne pas utiliser @strings même si le fichier XML indique strings.xml sinon cela ne fonctionnera pas.

11voto

Nepster Points 893

Il n'est pas une bonne pratique d'inclure des chaînes de caractères directement dans vos fichiers de mise en page/code. Vous devriez les ajouter à un fichier de ressources de chaînes et ensuite les référencer dans votre mise en page.

  1. Cela vous permet de mettre à jour toutes les occurrences du même mot dans toutes les mises en page en même temps en modifiant simplement votre fichier strings.xml.
  2. C'est également extrêmement utile pour prendre en charge plusieurs langues car un fichier strings.xml séparé peut être utilisé pour chaque langue supportée.
  3. le véritable intérêt du système @string, veuillez consulter la documentation sur la localisation. Cela vous permet de localiser facilement du texte dans votre application et de le faire traduire ultérieurement.
  4. Les chaînes peuvent être internationalisées facilement, permettant à votre application de prendre en charge plusieurs langues avec un seul fichier de package d'application (APK).

Avantages

  • Disons que vous avez utilisé la même chaîne de caractères à 10 endroits différents dans le code. Et si vous décidez de la modifier? Au lieu de chercher partout dans le projet où elle a été utilisée, il vous suffit de la modifier une seule fois et les modifications sont reflétées partout dans le projet.
  • Les chaînes n'encombrent pas votre code d'application, le laissant clair et facile à entretenir.

4voto

Keith Peñas Points 69

Vous pouvez passer en mode Design et sélectionner "Réparer" en bas de l'avertissement. Ensuite, une fenêtre contextuelle apparaîtra (semblant enregistrer la nouvelle chaîne) et voilà, l'erreur est corrigée.

0voto

SahdevRajput74 Points 699

Une bonne pratique est d'écrire du texte à l'intérieur de String.xml

exemple:

String.xml

    Yellow

et à l'intérieur du layout:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X