I have implemented an option to select GUI language in my app, but I can't make it refresh the screen when a new language is selected.  

The selection is made through a `ListPreference` so there are 2 problems :
1. Refresh the `Preference` page in which the language is selected.
2. When the app starts, I set the `Locale` on the `onCreate()` of the `MainActivity` but the `MainActivity` layout is never getting updated with the new selected Locale. (all other screens are updated so the set code is good).

Here is the code for setting the new Locale :

```
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(ctx);

    String langKey = ctx.getString(R.string.shared_options_select_language_key);
    String langDefault = ctx.getString(R.string.shared_options_select_language_default_value);
String appLanguage = preferences.getString(langKey, langDefault);

Locale locale = null;
if (appLanguage.equals(langDefault)) {                
    locale = new Locale(Resources.getSystem().getConfiguration().locale.getLanguage());
} else {
    String[] languageInfo = appLanguage.split("_");
    if (languageInfo.length > 1) {
        locale = new Locale(languageInfo[0], languageInfo[1]);
    } else {
        locale = new Locale(appLanguage);
    }
}
if (appLanguage.contains(currentLang)) {
    return false;
}
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;

act.getBaseContext().getResources().updateConfiguration(config, act.getBaseContext().getResources().getDisplayMetrics());

```

Thank you