I use this method when i have to use different languages:
1) Set a int for all the languages supported.
2) Use a basic function to set Default Locale.
3) Use a function to launch in different languages.
This is the example:
2)
public static void setDefaultLocale(Context context,String locale)
{
Locale appLoc = new Locale(locale);
Locale.setDefault(appLoc);
Configuration appConfig = new Configuration();
appConfig.locale = appLoc;
context.getResources().updateConfiguration(appConfig, context.getResources()
.getDisplayMetrics());
}
where locale follow the ISO 639-1
1)
private Language myLanguage;
public enum Language
{
Null,Spanish,English,Catalan
}
3)
private void launchApplication(int language)
{
// Set Language
switch (language)
{
case 1:
// Espa?ol
setDefaultLocale(getApplicationContext(),"es");
myLanguage = Language.Spanish;
break;
case 2:
// English
setDefaultLocale(getApplicationContext(),"en");
myLanguage = Language.English;
break;
default:
// Catalan
setDefaultLocale(getApplicationContext(),"ca");
myLanguage = Language.Catalan;
break;
}
Intent intent = new Intent(this, MyActivity.class);
startActivityForResult(intent, 2);
// Finish the Activity when return from the other Activity
finish();
}
Then, call launchApplication(int selected); and must be work!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…