Frage

Ich habe versucht, ein Android-Bibliothek-Projekt zu machen, und während des Build-Prozess funktioniert gut, ich habe in dem Projekt mit dem Ersetzen eine Ressource in einige Schwierigkeiten läuft, die die Bibliothek verwendet.

In meiner Bibliothek habe ich:

  1. Ein library_layout.xml mit

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

  2. Eine Java-Datei, die

    ruft

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

  3. Eine Ressource strings.xml mit

    Platzhalter

In dem Projekt mit der Bibliothek Ich habe

  1. Eine Ressource strings.xml mit

    Die tatsächliche Zeichenfolge Inhalt

Das Verhalten erwarte ich, dass, wenn ich das Projekt ausführen, die Bibliothek verwenden, um die Textansicht zeigt Ist-String Inhalt , aber es enthält tatsächlich false .

Suchen Sie in der App, die die Bibliothek verwendet, I tun sehen zwei R Dateien, und beide haben R.string.my_string und diese beiden sind gleich dem gleichen numerischen Wert.

War es hilfreich?

Lösung

Ich habe die gleiche Anordnung und das funktioniert für mich, wie erwartet.

Die Bibliothek verfügt über Layout / Klasse mit diesem Verweis auf ein String-Ressourcen:

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

Die Bibliothek stellt einen Standardwert in seiner strings.xml:

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

Der Haupt App hat diesen Wert in seiner strings.xml:

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

Wenn ich einen Wert für diese Ressource in der Haupt apps strings.xml givve, ich sehe „Client Da“, wenn die App läuft, wenn ich es von der Haupt apps strings.xml löschen, sehe ich den Wert aus der Bibliothek, "Student Da".

Es scheint, dieses erwartete Verhalten auf meine Lektüre hier beruht: http://developer.android.com/tools/sdk/eclipse-adt.html

Relevante Zitat aus obigem Link:

  

In den Fällen, in denen eine Ressource-ID sowohl in der Anwendung und die Bibliothek definiert ist, sicherzustellen, dass die Werkzeuge, dass die Ressource in der Anwendung erklärt wird Priorität und dass die Ressource in der Bibliothek Projekt wird nicht in die Anwendung APK zusammengestellt. Dies gibt die Anwendung die Flexibilität zu jeder Nutzung oder neu definiert alle Ressourcen Verhaltensweisen oder Werte, die in jeder Bibliothek definiert sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top