2017-05-03 2 views
1

I Sprachen in meiner app mit diesem Code zu ändern:Drawable Ressourcen nicht nach Locale Änderungen & Activity geändert Neustart

protected void changeAppLangForUser(String lang) { 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = new Locale(lang); 
    res.updateConfiguration(conf, dm); 
} 

starten Aktivität:

Intent intent = new Intent(getActivity(), SplashScreenActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION); 
    getActivity().startActivity(intent); 
    getActivity().overridePendingTransition(0, 0); 

Strings werden wie erwartet geändert, aber keine Symbole gespeichert in Mipmap-Ordnern wie folgt: enter image description here

Es scheint ziemlich seltsam, aber wenn ich auf jeden Fall die App zu schließen und dann auf Start-Symbol drücken, um es wieder zu starten, es sho ws Symbole für die erwartete Sprache. Vermisse ich etwas oder ist das ein erwartetes Verhalten?

+0

Versuchen Sie, die recreate() Methode aufzurufen, anstatt die Aktivität zu starten – FAT

Antwort

1

Ich denke, Sie haben selector Ressourcen in Ihrem Ordner drawable, die mipmap Symbole verwendet. Wenn ja, versuchen Sie, den Ordner drawable-ru zu erstellen und kopieren Sie sie einfach in dieses neue Verzeichnis. Ich hatte dieses Problem vorher;)

+0

Yep Mann, das hat es funktioniert – Choletski

Verwandte Themen