Cadena de referencia de Android en string.xml

¿Es posible hacer referencia a una cadena en strings.xml?

P.ej:

<string name="application_name">@string/first_name Browser</string> <string name="first_name">Chrome</string> 

Cuando dependiendo de los requisitos, puedo cambiar el valor de first_name a "Chrome", "Firefox" u "Opera".

2 Solutions collect form web for “Cadena de referencia de Android en string.xml”

Puede dar la referencia del recurso de cadena, pero la limitación es la siguiente

 <string name="first_name">Chrome</string> <string name="application_name">@string/first_name</string> // gives "Chrome" <string name="application_name">Chrome @string/first_name</string> // gives "Chrome @string/first_name" <string name="application_name">@string/first_name Chrome </string> // gives error 

Si el contenido comienza con "@", entonces Android considera que se trata de una cadena de referencia, ver el último caso que da un error porque las herramientas de Android toman @ y la siguiente cadena como el nombre de referencia de la cadena, tratará de encontrar un recurso llamado " String / first_name Chrome "que no existe.

Puede utilizar Formato de cadena para asignar dinámicamente sub-cadenas como <string name="application_name">%1$s browser</string>

usar

 String text = String.format(res.getString(R.string.application_name), "Chrome"); 

Las cadenas en strings.xml son fijas y no se pueden cambiar en tiempo de ejecución. Tendrás que definir una cadena para cada caso, y hacer el cambio en el código.

 String name; if (/* browser is Chrome*/) { name = getString(R.string.first_name_chrome); } else if (/* browser is Firefox */) { name = getString(R.string.first_name_firefox); } 

Sin embargo, puede hacer que la aplicación seleccione la cadena correcta para diferentes idiomas automáticamente. Esto puede hacerse colocando archivos de cadena en carpetas localizadas (valores-en, valores-fr, valores-pl etc.).

Puede leer más acerca de la localización en http://www.icanlocalize.com/site/tutorials/android-application-localization-tutorial/

  • Cómo configurar el ancho en Android con javascript?
  • Error al cargar la actividad con HierarchyViewer
  • Vista de lista de fondo de pie de página en Android 2.3.3
  • Ayuda de diseño de Android, elementos que faltan
  • Xmlns: android = "http://schemas.android.com/apk/res/android" se agrega a todos mis objetos de diseño causando errores
  • Valores de Android para Nexus 6
  • ¿Qué puedo hacer cuando obtengo un error "no se puede resolver con un tipo"?
  • ¿Cómo especificar el espaciado entre elementos de LinearLayout sólo una vez?
  • Android- ¿Cómo diferenciar los diseños de Galaxy S-3 y Galaxy S-4?
  • ¿Es posible realizar la sustitución de cadenas en archivos XML de recursos de Android directamente?
  • Agregar varias vistas personalizadas al diseño mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.