proyectos - Reemplazar(o "Anular") Cadena en Android Library Project
import project android studio (1)
Tengo el mismo arreglo y esto funciona para mí como se esperaba.
La biblioteca tiene diseño / clase con esta referencia a recursos de cadena:
<TextView android:id="@+id/studentSinceLabel">
La biblioteca proporciona un valor predeterminado en strings.xml:
<string name="studentSinceLabel">Student Since</string>
La aplicación principal tiene este valor en su strings.xml:
<string name="studentSinceLabel">Client Since</string>
Cuando le doy un valor para este recurso en las principales aplicaciones strings.xml, veo "Client Since" cuando se ejecuta la aplicación, cuando lo elimino de la aplicación principal strings.xml, veo el valor de la biblioteca, "Student Since ".
Parece que este es el comportamiento esperado en base a mi lectura aquí: http://developer.android.com/tools/sdk/eclipse-adt.html
Cita relevante del enlace de arriba:
En los casos en que se define una ID de recurso tanto en la aplicación como en la biblioteca, las herramientas garantizan que el recurso declarado en la aplicación tenga prioridad y que el recurso en el proyecto de la biblioteca no se compile en la aplicación .apk. Esto le da a su aplicación la flexibilidad de usar o redefinir cualquier comportamiento de recursos o valores definidos en cualquier biblioteca.
He intentado hacer un proyecto de biblioteca android, y aunque el proceso de compilación funciona bien, he tenido algunos problemas para reemplazar un recurso en el proyecto que usa la biblioteca.
En mi biblioteca tengo:
Un
library_layout.xml
contiene<TextView
android: id = "@ + id / str_my_string"
android: layout_width = "wrap_content"
android: layout_text = "wrap_content"
>Un archivo java que llama
((TextView) this.findViewById (R.id.str_my_string)). SetText (R.string.my_string);
Un recurso
strings.xml
contiene<string name = "my_string"> Marcador de posición </ string>
En el proyecto que usa la biblioteca tengo
Un recurso
strings.xml
contiene<string name = "my_string"> Contenido real de la cadena </ string>
El comportamiento que espero es que cuando ejecuto el proyecto usando la biblioteca, la vista de texto muestre el contenido de la Cadena real , pero en realidad contiene falso .
Al R.string.my_string
en la aplicación que usa la biblioteca, veo dos archivos R
, y ambos tienen R.string.my_string
y ambos tienen el mismo valor numérico.