2015-03-16 5 views
1

Я использую по умолчанию кусок кода во всех моих проектах, в BaseActivity в onCreate():Невозможно изменить локаль только Android 5,02

Locale locale = new Locale("ru"); 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
context.getApplicationContext().getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); 

Я попытался поместить здесь как new Locale("ru", "RU") - никакой разницы. Странная часть, что эта проблема возникает только в android 5.02 NOT 5.0.5.01. Также существуют такие problem, поэтому мои предположения были значительными изменениями в locale api.

EDIT: Я перезапуск всего приложения после изменения локали в настройках

+0

у меня есть один и тот же вопрос. Вот исправление для этого. [Здесь исправление для этого] (http://stackoverflow.com/questions/2900023/change-language-programmatically-in-android/43938564#43938564) –

ответ

0

необходимо перезапустить деятельность, но знайте, что это не будет обновлять уже открытую деятельность (в alreardy в стеке обратно), я обычно обновленная информация затем вызвать основным видом деятельности со следующими свойствами в очевидном

<activity 
     android:name=".activities.SplashActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTop" #the important 
     > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

funiction обновить Ланг

public static void updateLanguage(Context ctx, String lang, boolean goToHomeScreen) { 
    Configuration cfg = new Configuration(); 
    if (!TextUtils.isEmpty(lang)) 
     cfg.locale = new Locale(lang); 
    else 
     cfg.locale = Locale.getDefault(); 

    ctx.getResources().updateConfiguration(cfg, null); 

    if (goToHomeScreen) { 
     Intent intent = new Intent(ctx, HomeActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
      | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    ctx.startActivity(intent); 
    } 
} 
+0

Я перезапускаю все приложение после изменения языкового стандарта в настройках –

+0

@ grub-weird android bugs –

+0

Да, он работает на всех версиях Android, кроме этого недавнего обновления. –

Смежные вопросы