Je suis un développeur Android débutant, j'essayais d'exécuter cette disposition linéaire dans Eclipse:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_weight="1">
<TextView
Android:text="red"
Android:gravity="center_horizontal"
Android:background="#aa0000"
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:layout_weight="1"/>
<TextView
Android:text="green"
Android:gravity="center_horizontal"
Android:background="#00aa00"
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:layout_weight="1"/>
<TextView
Android:text="blue"
Android:gravity="center_horizontal"
Android:background="#0000aa"
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:layout_weight="1"/>
<TextView
Android:text="yellow"
Android:gravity="center_horizontal"
Android:background="#aaaa00"
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_weight="1">
<TextView
Android:text="row one"
Android:textSize="15pt"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
<TextView
Android:text="row two"
Android:textSize="15pt"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
<TextView
Android:text="row three"
Android:textSize="15pt"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
<TextView
Android:text="row four"
Android:textSize="15pt"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
Et j'ai remarqué:
1) ligne jaune sousAndroid:text="Yellow"
2) ligne jaune sousAndroid:text="row four"
le triangle avertir dit [I18N] Hardcoded string "Yellow", should use @string resource "
et la même chose pour le reste des avertissements. Toute suggestion?
Il est déconseillé de coder en dur des chaînes dans vos fichiers de présentation. Vous devez les ajouter à un fichier de ressources de chaîne, puis les référencer à partir de 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.
Il 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é dans res/values / strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yellow">Yellow</string>
</resources>
Cette mise en page XML applique une chaîne à une vue:
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/yellow" />
De même, les couleurs doivent être stockées dans le fichier colors.xml, puis référencées à l’aide de @ color/nom_couleur.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black">#000000</color>
</resources>
Ce n’est pas une bonne pratique de coder en dur des chaînes dans vos fichiers de présentation/code. Vous devez les ajouter à un fichier de ressources de chaîne, puis les référencer à partir de votre mise en page.
strings.xml
.supporting multiple languages
car un strings.xml file
séparé peut être utilisé pour chaque langue prise en charge@string
, veuillez lire la documentation localisation . Il vous permet de localiser facilement le texte dans votre application et de le faire traduire ultérieurement.support multiple languages with a single application package file
.__ (APK).Avantages
Vous devez les créer sous Strings.xml
<string name="close">Close</string>
Vous devez remplacer et référencer comme ceci
Android:text="@string/close"/>
N'utilisez pas @strings même si le fichier XML indique strings.xml, sinon cela ne fonctionnera pas.
Vous pouvez aller en mode Conception et sélectionner "Corriger" au bas de l'avertissement. Ensuite, une fenêtre pop-up apparaîtra (il semble que cela va enregistrer la nouvelle chaîne) et voilà, l'erreur est corrigée.
Une bonne pratique consiste à écrire du texte dans String.xml.
exemple:
String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yellow">Yellow</string>
</resources>
et disposition intérieure:
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/yellow" />