Reemplazar (o" Anular") Cadena en el Proyecto de Biblioteca de Android


He estado tratando de hacer un proyecto de biblioteca de Android, y mientras que el proceso de compilación funciona bien, me he estado ejecutando en algunos problemas con la sustitución de un recurso en el proyecto que utiliza la biblioteca.

En mi biblioteca tengo:

  1. A library_layout.xml que contiene

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

  2. Un archivo java que llamadas

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

  3. Un recurso strings.xml que contiene

    Placeholder

En el proyecto usando la biblioteca tengo

  1. Un recurso strings.xml que contiene

    Contenido real de la cadena

El comportamiento que espero es que cuando corro el proyecto usando la biblioteca, la vista de texto muestra El contenido real de la cadena, pero en realidad contiene false.

Mirando en la aplicación que usa la biblioteca, hago ver dos archivos R, y ambos tienen R.string.my_string y ambos son iguales al mismo valor numérico.

Author: jwriteclub, 2010-11-24

1 answers

Tengo el mismo arreglo y esto funciona para mí como se esperaba.

La biblioteca tiene layout / class con esta referencia a una cadena de recursos:

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

La biblioteca proporciona un valor predeterminado en sus cadenas.xml:

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

La aplicación principal tiene este valor en sus cadenas.xml:

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

Cuando doy un valor para este recurso en las cadenas principales de aplicaciones.xml, veo "Cliente Desde" cuando se ejecuta la aplicación, cuando lo elimino de las cadenas de aplicaciones principales.xml, veo el valor de la biblioteca, "Estudiante desde".

Parece que este es el comportamiento esperado basado en mi lectura aquí: http://developer.android.com/tools/sdk/eclipse-adt.html

Cita relevante del enlace anterior:

En los casos en que se define un ID de recurso tanto en la aplicación como en la biblioteca, las herramientas aseguran que el recurso declarado en la aplicación tenga prioridad y que el recurso en el proyecto de biblioteca no se compile en la aplicación .apk. Esto le da a su aplicación la flexibilidad para usar o redefinir los comportamientos o valores de los recursos que se definen en cualquier biblioteca.

 59
Author: R Miller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-13 14:03:32