¿Puedo acceder a recursos de diferentes entornos Android?

Tengo dos locale en mi aplicación. ¿Puedo acceder a los recursos, por ejemplo, matriz de cadenas de diferentes configuraciones regionales sin cambiar la configuración regional actual? Quiero decir que con la encoding no me gusta cambiarlo en Configuración.

La mejor solución sería (si estás en la API 17):

@NonNull protected String getEnglishString() { Configuration configuration = getEnglishConfiguration(); return getContext().createConfigurationContext(configuration).getResources().getString(message); } @NonNull private Configuration getEnglishConfiguration() { Configuration configuration = new Configuration(getContext().getResources().getConfiguration()); configuration.setLocale(new Locale("en")); return configuration; } 

Aquí está el código que funciona para mí si cMK es String array de la configuración regional actual y cEN es string array de diffrent locale

  cMK = getResources().getStringArray(R.array.cities); Configuration confTmp =new Configuration( getResources().getConfiguration()); confTmp.locale = new Locale("en"); DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); Resources resources = new Resources(getAssets(), metrics, confTmp); /* get localized string */ cENG = getResources().getStringArray(R.array.cities); 

La configuración regional actual no cambia y ese era el punto.

En Java 7 (por lo tanto, no Android), la Configuración regional puede configurarse de forma diferente para los recursos de formato y diferente para la visualización:

 Locale.setDefault(DISPLAY, Locale.PL); Locale.setDefault(FORMAT, Locale.US); 

Tema similar: cambiar la configuración regional dentro de la aplicación .