J'ai essayé de créer un projet de bibliothèque Android, et même si le processus de compilation fonctionne correctement, j'ai rencontré des problèmes lors du remplacement d'une ressource dans le projet qui utilise la bibliothèque.Chaîne Replace (or "Override") dans le projet de bibliothèque Android
Dans ma bibliothèque, j'ai:
A
library_layout.xml
contenant< TextView
android: id = "@ + id/str_my_string"
android: layout_width = "wrap_content"
android: layout_text = "wrap_content"
>Un fichier java qui appelle
((TextView) this.findViewById (R.id.str_my_string)) setText (R.string.my_string).
Une ressource
strings.xml
contenantstring name < = "my_string" > Placeholder </string >
Dans le projet en utilisant la bibliothèque, j'ai
Une ressource
strings.xml
contenant< string name = "my_string" > contenu de chaîne réelle </string >
Le comportement que je pense est que lorsque je lance le projet à l'aide de la bibliothèque, la vue texte affiche contenu de la chaîne actuelle, mais il contient effectivement false.
regardant dans l'application qui utilise la bibliothèque, je ne voir deux R
fichiers, et les deux ont R.string.my_string
et les deux personnes sont égales à la même valeur numérique.
Donc, il semble que j'avais simplement des problèmes avec Eclipse ne pas nettoyer vieux cruft. – jwriteclub
Ceci est exact, mais il échouera si la chaîne est traduite dans la bibliothèque. La version traduite en lib remplace la version de l'application (traduite ou non). Donc, leçon apprise: ne traduisez pas une chaîne de caractères génériques. –
@johand. pour les bibliothèques qui utilisent la ressource de chaîne traduite, n'importe quel moyen de la remplacer dans notre projet? – Bruce