Good Morning, I've tried a lot of solution but nothing function in my app. After rotaion, when I start a new activity, it set defaul locale. Please help me, I'me desperate and i'm tried a lot of solution! :( This is my Locale Activity:
ImageButton inglese = (ImageButton) findViewById (R.id.inglese);
ImageButton italiano = (ImageButton) findViewById (R.id.italiano);
inglese.setOnClickListener(onClickListener);
italiano.setOnClickListener(onClickListener);
}
private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
switch(v.getId()){
case R.id.inglese:
//DO something
setLocaleEng();
break;
case R.id.italiano:
//DO something
setLocaleIta();
break;
}
}
};
private void setLocaleEng() {
// TODO Auto-generated method stub
Locale localeEng = new Locale("en");
Locale.setDefault(localeEng);
Configuration configEng = new Configuration();
configEng.locale = localeEng;
getBaseContext().getResources().updateConfiguration(configEng, getBaseContext().getResources().getDisplayMetrics());
Intent intent = new Intent(Lingua.this, MainActivity.class);
startActivity(intent);
Lingua.this.finish();
}
private void setLocaleIta() {
// TODO Auto-generated method stub
// Locale localeIta = new Locale("it");
Configuration newConfig = new Configuration();
newConfig.locale = Locale.ITALIAN;
onConfigurationChanged(newConfig);
Intent intent = new Intent(Lingua.this, MainActivity.class);
// Lingua.this.finish();
startActivity(intent);
Lingua.this.finish();
}
And this is an activity that extend application:
public class MyApplication extends Application {
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setLocaleEng();
setLocaleIta();
}
private void setLocaleEng() {
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
}
private void setLocaleIta() {
Locale localeita = new Locale("it");
Locale.setDefault(localeita);
Configuration config2 = new Configuration();
config2.locale = localeita;
getBaseContext().getResources().updateConfiguration(config2,
getBaseContext().getResources().getDisplayMetrics());
}
}
Please, help me!!