Reemplazar (o “Ignorar”) de cadena en el Proyecto Biblioteca Android
-
27-09-2019 - |
Pregunta
he estado tratando de hacer un proyecto de biblioteca androide, y mientras el proceso de construcción funciona bien, he estado funcionando en algunos problemas con el reemplazo de un recurso en el proyecto que utiliza la biblioteca.
En mi biblioteca tengo:
-
A
library_layout.xml
contieneandroid: id = "@ + / Identificación del str_my_string"
Android: layout_width = "wrap_content"
Android: layout_text = "wrap_content"
> -
Un archivo Java que llama a
((TextView) this.findViewById (R.id.str_my_string)) setText (R.string.my_string);.
-
A
strings.xml
de recursos que contienemarcador de posición
En el proyecto usando la biblioteca tengo
-
A
strings.xml
de recursos que contienecontenido real de cadena
El comportamiento que espero es que cuando ejecuto el proyecto usando la biblioteca, la vista de texto muestra contenido real de cadena , pero en realidad contiene false .
Buscando en la aplicación que utiliza la biblioteca, lo ver dos archivos R
, y ambos tienen R.string.my_string
y ambas cosas son iguales al mismo valor numérico.
Solución
Tengo la misma disposición y esto funciona para mí como se esperaba.
La biblioteca tiene diseño / clase con esta referencia a una cadena de recursos:
<TextView android:id="@+id/studentSinceLabel">
La biblioteca proporciona un valor por defecto en su 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 givve un valor para este recurso en el principal aplicaciones strings.xml, veo "Cliente Ya que" cuando se ejecuta la aplicación, cuando se borra desde el principal strings.xml aplicaciones, que ven el valor de la biblioteca, "Desde Estudiante".
Parece que este comportamiento se espera basado en mi lectura aquí: http://developer.android.com/tools/sdk/eclipse-adt.html
cita relevante del enlace de arriba:
En los casos en que un identificador de recursos se definen en la aplicación y la biblioteca, las herramientas de garantizar que el recurso declarado en la solicitud tiene prioridad y que el recurso en el proyecto de la biblioteca no se compila en el apk aplicación. Esto da a su aplicación la flexibilidad para utilizar o redefinir los comportamientos de recursos o valores que se definen en cualquier biblioteca.