Question

J'ai essayé de faire un projet de bibliothèque Android, et alors que le processus de construction fonctionne très bien, je l'ai été en cours d'exécution dans des problèmes avec le remplacement d'une ressource dans le projet qui utilise la bibliothèque.

Dans ma bibliothèque, j'ai:

  1. A library_layout.xml contenant

        android: id = "@ + id / str_my_string"
        android: layout_width = "wrap_content"
        android: layout_text = "wrap_content"
        >

  2. Un fichier java qui appelle

    ((TextView) this.findViewById (R.id.str_my_string)) setText (R.string.my_string);.

  3. strings.xml de ressources contenant

    Placeholder

Dans le projet en utilisant la bibliothèque je

  1. strings.xml de ressources contenant

    contenu de la chaîne réelle

Le comportement que je pense est que lorsque je lance le projet à l'aide de la bibliothèque, la vue de texte affiche le contenu de la chaîne Actual , mais il contient en fait false .

Recherche dans l'application qui utilise la bibliothèque, je faire voir deux fichiers R, et les deux ont R.string.my_string et les deux personnes sont égales à la même valeur numérique.

Était-ce utile?

La solution

J'ai le même arrangement et cela fonctionne pour moi comme prévu.

La bibliothèque a la mise en page / classe avec cette référence à une chaîne de ressources:

<TextView android:id="@+id/studentSinceLabel">

La bibliothèque fournit une valeur par défaut dans son strings.xml:

<string name="studentSinceLabel">Student Since</string>

L'application principale a cette valeur dans sa strings.xml:

<string name="studentSinceLabel">Client Since</string>

Quand je givve une valeur de cette ressource dans les principales applications strings.xml, je vois « Client Depuis » lors de l'exécution d'applications, quand je le supprimer de la principale applications strings.xml, je vois la valeur de la bibliothèque, "Depuis l'étudiant".

Semble ce comportement est attendu en fonction de ma lecture ici: http://developer.android.com/tools/sdk/eclipse-adt.html

citation pertinente de lien ci-dessus:

  

Dans les cas où un ID de ressource est défini dans l'application et la bibliothèque, les outils assurent que la ressource déclarée dans la demande est prioritaire et que la ressource dans le projet de bibliothèque n'est pas compilé dans le .apk d'application. Cela donne à votre demande la possibilité d'utiliser ou redéfinir les comportements des ressources ou des valeurs qui sont définies dans une bibliothèque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top